SlideShare a Scribd company logo
plone.api
A simple API for a saner futureA simple API for a saner future
@me
github.com/gforcada
twitter.com/gforcada
Work at der Freitag
@me
github.com/gforcada
twitter.com/gforcada
Work at der Freitag
QUICK QUIZQUICK QUIZ
Who knows plone.api?Who knows plone.api?
Who uses plone.api?Who uses plone.api?
plone.apiplone.api
CREDITSCREDITS
Credit where credit is dueCredit where credit is due
plone Konferenz sprint
Belgian beer sprint
Specially @zupo
plone Konferenz sprint
Belgian beer sprint
Specially @zupo
WHY?WHY?
Get plone site root?Get plone site root?
Check permissions?Check permissions?
GOALSGOALS
«to cover 20% of the tasks any Plone developer
does 80% of the time»
«to cover 20% of the tasks any Plone developer
does 80% of the time»
provide clear API methodsprovide clear API methods
provide clear API methods
keeping everything in one place
provide clear API methods
keeping everything in one place
provide clear API methods
keeping everything in one place
staying introspectable and discoverable
provide clear API methods
keeping everything in one place
staying introspectable and discoverable
provide clear API methods
keeping everything in one place
staying introspectable and discoverable
being Pythonic
provide clear API methods
keeping everything in one place
staying introspectable and discoverable
being Pythonic
APPROACHAPPROACH
DDDDDD
TDDTDD
SGDDSGDD
EXAMPLESEXAMPLES
from plone import api
api.portal.get()
from plone import api
api.portal.get()
from plone import api
api.user.has_permission(
'View',
username='adam'
obj=api.portal.get(),
)
from plone import api
api.user.has_permission(
'View',
username='adam'
obj=api.portal.get(),
)
from plone import api
portal = api.portal.get()
training = portal['events']['training']
api.content.copy(
source=training,
target=portal,
)
from plone import api
portal = api.portal.get()
training = portal['events']['training']
api.content.copy(
source=training,
target=portal,
)
DID YOU NOTICE?DID YOU NOTICE?
Cleans your own code
(flake8-plone-api)
Cleans your own code
(flake8-plone-api)
Raise the barRaise the bar
#303
#302
#286
#244
#214
#211
.
.
.
.
#303
#302
#286
#244
#214
#211
.
.
.
.
plone.api
pypi.python.org/pypi/plone.api
github.com/plone/plone.api
docs.plone.org/develop/plone.api/docs/index.html
travis-ci.org/plone/plone.api
coveralls.io/github/plone/plone.api
plone.api
pypi.python.org/pypi/plone.api
github.com/plone/plone.api
docs.plone.org/develop/plone.api/docs/index.html
travis-ci.org/plone/plone.api
coveralls.io/github/plone/plone.api
FUTURE?FUTURE?
api.portal.get_portal_url()
api.portal.run_upgrades()
.
.
.
sprinting anyone?
api.portal.get_portal_url()
api.portal.run_upgrades()
.
.
.
sprinting anyone?
Thanks for
listening!
Thanks for
listening!

More Related Content

What's hot

Polymorphic meetup - can you teach your po to push cucumber gherkins to git
Polymorphic meetup - can you teach your po to push cucumber gherkins to gitPolymorphic meetup - can you teach your po to push cucumber gherkins to git
Polymorphic meetup - can you teach your po to push cucumber gherkins to gitArnaud Georgin
 
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software FactoryIBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software FactoryIBM France Lab
 
Use Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsUse Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsParadigma Digital
 
Building New on Top of Old: The Argument for Simplicity
Building New on Top of Old: The Argument for SimplicityBuilding New on Top of Old: The Argument for Simplicity
Building New on Top of Old: The Argument for SimplicityNew Relic
 
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...François-Guillaume Ribreau
 
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015Steve Hoffman
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務Bo-Yi Wu
 
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Matt Raible
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps DisasterBert Jan Schrijver
 
Continuous integration with Docker
Continuous integration with DockerContinuous integration with Docker
Continuous integration with DockerRondinelli Mesquita
 
MA 2019. iOS Advanced. CI & CD. Fastlane + Gitlab
MA 2019. iOS Advanced. CI & CD. Fastlane + GitlabMA 2019. iOS Advanced. CI & CD. Fastlane + Gitlab
MA 2019. iOS Advanced. CI & CD. Fastlane + GitlabMaksym Savisko
 
FAKE (F# Make) & Automation
FAKE (F# Make) & AutomationFAKE (F# Make) & Automation
FAKE (F# Make) & AutomationSergey Tihon
 
Chiara Chiappini - Swift and the future of iOS app development
Chiara Chiappini - Swift and the future of iOS app developmentChiara Chiappini - Swift and the future of iOS app development
Chiara Chiappini - Swift and the future of iOS app developmentCodemotion
 
LicensePlist - A license list generator of all your dependencies for iOS appl...
LicensePlist - A license list generator of all your dependencies for iOS appl...LicensePlist - A license list generator of all your dependencies for iOS appl...
LicensePlist - A license list generator of all your dependencies for iOS appl...将之 小野
 
Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Vinicius Quaiato
 

What's hot (20)

Polymorphic meetup - can you teach your po to push cucumber gherkins to git
Polymorphic meetup - can you teach your po to push cucumber gherkins to gitPolymorphic meetup - can you teach your po to push cucumber gherkins to git
Polymorphic meetup - can you teach your po to push cucumber gherkins to git
 
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software FactoryIBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
 
Paving roads
Paving roadsPaving roads
Paving roads
 
Use Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsUse Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projects
 
Building New on Top of Old: The Argument for Simplicity
Building New on Top of Old: The Argument for SimplicityBuilding New on Top of Old: The Argument for Simplicity
Building New on Top of Old: The Argument for Simplicity
 
Agile Apps
Agile AppsAgile Apps
Agile Apps
 
Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019
 
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
 
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務
 
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps Disaster
 
Continuous integration with Docker
Continuous integration with DockerContinuous integration with Docker
Continuous integration with Docker
 
MA 2019. iOS Advanced. CI & CD. Fastlane + Gitlab
MA 2019. iOS Advanced. CI & CD. Fastlane + GitlabMA 2019. iOS Advanced. CI & CD. Fastlane + Gitlab
MA 2019. iOS Advanced. CI & CD. Fastlane + Gitlab
 
FAKE (F# Make) & Automation
FAKE (F# Make) & AutomationFAKE (F# Make) & Automation
FAKE (F# Make) & Automation
 
Chiara Chiappini - Swift and the future of iOS app development
Chiara Chiappini - Swift and the future of iOS app developmentChiara Chiappini - Swift and the future of iOS app development
Chiara Chiappini - Swift and the future of iOS app development
 
Phonegap 1.0
Phonegap 1.0Phonegap 1.0
Phonegap 1.0
 
LicensePlist - A license list generator of all your dependencies for iOS appl...
LicensePlist - A license list generator of all your dependencies for iOS appl...LicensePlist - A license list generator of all your dependencies for iOS appl...
LicensePlist - A license list generator of all your dependencies for iOS appl...
 
Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?
 
Pluginize ALL the things
Pluginize ALL the thingsPluginize ALL the things
Pluginize ALL the things
 

Viewers also liked

Tiffanyp2
Tiffanyp2Tiffanyp2
Tiffanyp2nycdoe
 
Resume - Jarod M Wachtel (PA)
Resume - Jarod M Wachtel (PA)Resume - Jarod M Wachtel (PA)
Resume - Jarod M Wachtel (PA)Jarod Wachtel
 
Secondary School Offers for Sevenoaks Students
Secondary School Offers for Sevenoaks StudentsSecondary School Offers for Sevenoaks Students
Secondary School Offers for Sevenoaks StudentsSevenoaks ACE
 
Developing Single Page Applications on Plone using AngularJS
Developing Single Page Applications on Plone using AngularJSDeveloping Single Page Applications on Plone using AngularJS
Developing Single Page Applications on Plone using AngularJSAlin Voinea
 
DF1 - Py - Kalaidin - Introduction to Word Embeddings with Python
DF1 - Py - Kalaidin - Introduction to Word Embeddings with PythonDF1 - Py - Kalaidin - Introduction to Word Embeddings with Python
DF1 - Py - Kalaidin - Introduction to Word Embeddings with PythonMoscowDataFest
 
DF1 - ML - Vorontsov - BigARTM Topic Modelling of Large Text Collections
DF1 - ML - Vorontsov - BigARTM Topic Modelling of Large Text CollectionsDF1 - ML - Vorontsov - BigARTM Topic Modelling of Large Text Collections
DF1 - ML - Vorontsov - BigARTM Topic Modelling of Large Text CollectionsMoscowDataFest
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности PythonPyNSK
 
TravellingAbroadSlideShow
TravellingAbroadSlideShowTravellingAbroadSlideShow
TravellingAbroadSlideShowWinnia
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыTheoretical mechanics department
 
Backtesting Trading Strategies with R
Backtesting Trading Strategies with RBacktesting Trading Strategies with R
Backtesting Trading Strategies with Reraviv
 
R in finance: Introduction to R and Its Applications in Finance
R in finance: Introduction to R and Its Applications in FinanceR in finance: Introduction to R and Its Applications in Finance
R in finance: Introduction to R and Its Applications in FinanceLiang C. Zhang (張良丞)
 

Viewers also liked (13)

Tiffanyp2
Tiffanyp2Tiffanyp2
Tiffanyp2
 
15 fotos bettas 2012
15 fotos bettas 201215 fotos bettas 2012
15 fotos bettas 2012
 
Resume - Jarod M Wachtel (PA)
Resume - Jarod M Wachtel (PA)Resume - Jarod M Wachtel (PA)
Resume - Jarod M Wachtel (PA)
 
Secondary School Offers for Sevenoaks Students
Secondary School Offers for Sevenoaks StudentsSecondary School Offers for Sevenoaks Students
Secondary School Offers for Sevenoaks Students
 
Conference PefNet in CZ
Conference PefNet in CZConference PefNet in CZ
Conference PefNet in CZ
 
Developing Single Page Applications on Plone using AngularJS
Developing Single Page Applications on Plone using AngularJSDeveloping Single Page Applications on Plone using AngularJS
Developing Single Page Applications on Plone using AngularJS
 
DF1 - Py - Kalaidin - Introduction to Word Embeddings with Python
DF1 - Py - Kalaidin - Introduction to Word Embeddings with PythonDF1 - Py - Kalaidin - Introduction to Word Embeddings with Python
DF1 - Py - Kalaidin - Introduction to Word Embeddings with Python
 
DF1 - ML - Vorontsov - BigARTM Topic Modelling of Large Text Collections
DF1 - ML - Vorontsov - BigARTM Topic Modelling of Large Text CollectionsDF1 - ML - Vorontsov - BigARTM Topic Modelling of Large Text Collections
DF1 - ML - Vorontsov - BigARTM Topic Modelling of Large Text Collections
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности Python
 
TravellingAbroadSlideShow
TravellingAbroadSlideShowTravellingAbroadSlideShow
TravellingAbroadSlideShow
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторы
 
Backtesting Trading Strategies with R
Backtesting Trading Strategies with RBacktesting Trading Strategies with R
Backtesting Trading Strategies with R
 
R in finance: Introduction to R and Its Applications in Finance
R in finance: Introduction to R and Its Applications in FinanceR in finance: Introduction to R and Its Applications in Finance
R in finance: Introduction to R and Its Applications in Finance
 

Similar to plone.api

Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdfSpace Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdfPostman
 
Why are APIs important?
Why are APIs important?Why are APIs important?
Why are APIs important?Andreas Krohn
 
APIForce presentation 28th of January
APIForce presentation 28th of JanuaryAPIForce presentation 28th of January
APIForce presentation 28th of JanuaryAmirKhan913627
 
Why APIs are important
Why APIs are importantWhy APIs are important
Why APIs are importantAndreas Krohn
 
Postman covid-webinar
Postman covid-webinarPostman covid-webinar
Postman covid-webinarPostman
 
APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...
APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...
APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...apidays
 
How to build a social network on serverless
How to build a social network on serverlessHow to build a social network on serverless
How to build a social network on serverlessYan Cui
 
Your API Sucks! Why developers hang up and how to stop that.
Your API Sucks! Why developers hang up and how to stop that.Your API Sucks! Why developers hang up and how to stop that.
Your API Sucks! Why developers hang up and how to stop that.Apigee | Google Cloud
 
How to Develop Orchestration Logic in APIs with Baker
How to Develop Orchestration Logic in APIs with BakerHow to Develop Orchestration Logic in APIs with Baker
How to Develop Orchestration Logic in APIs with BakerJordy Moos
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPICrystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPIScott Triglia
 
APIdays Paris 2019 - Getting Organized for APIs in the Corporate Environment ...
APIdays Paris 2019 - Getting Organized for APIs in the Corporate Environment ...APIdays Paris 2019 - Getting Organized for APIs in the Corporate Environment ...
APIdays Paris 2019 - Getting Organized for APIs in the Corporate Environment ...apidays
 
OpenAPI at Scale
OpenAPI at ScaleOpenAPI at Scale
OpenAPI at ScaleNordic APIs
 
WSO2Con US 2013 - Thinking of you. Customizing the store of the WSO2 API Mana...
WSO2Con US 2013 - Thinking of you. Customizing the store of the WSO2 API Mana...WSO2Con US 2013 - Thinking of you. Customizing the store of the WSO2 API Mana...
WSO2Con US 2013 - Thinking of you. Customizing the store of the WSO2 API Mana...WSO2
 
Building robust REST APIs
Building robust REST APIsBuilding robust REST APIs
Building robust REST APIsNejc Zupan
 
apidays LIVE Australia 2020 - Federating API Development at Australia’s large...
apidays LIVE Australia 2020 - Federating API Development at Australia’s large...apidays LIVE Australia 2020 - Federating API Development at Australia’s large...
apidays LIVE Australia 2020 - Federating API Development at Australia’s large...apidays
 
Managing API with Microsoft API Management
Managing API with Microsoft API ManagementManaging API with Microsoft API Management
Managing API with Microsoft API ManagementShahriar Hossain
 

Similar to plone.api (20)

API Best Practices
API Best PracticesAPI Best Practices
API Best Practices
 
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdfSpace Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdf
 
shanghai
shanghaishanghai
shanghai
 
Web2 Expo Presentation
Web2 Expo PresentationWeb2 Expo Presentation
Web2 Expo Presentation
 
Why are APIs important?
Why are APIs important?Why are APIs important?
Why are APIs important?
 
APIForce presentation 28th of January
APIForce presentation 28th of JanuaryAPIForce presentation 28th of January
APIForce presentation 28th of January
 
Why APIs are important
Why APIs are importantWhy APIs are important
Why APIs are important
 
Postman covid-webinar
Postman covid-webinarPostman covid-webinar
Postman covid-webinar
 
Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
 
APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...
APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...
APIdays Barcelona 2019 - How to build a social network on Serverless with Yan...
 
How to build a social network on serverless
How to build a social network on serverlessHow to build a social network on serverless
How to build a social network on serverless
 
Your API Sucks! Why developers hang up and how to stop that.
Your API Sucks! Why developers hang up and how to stop that.Your API Sucks! Why developers hang up and how to stop that.
Your API Sucks! Why developers hang up and how to stop that.
 
How to Develop Orchestration Logic in APIs with Baker
How to Develop Orchestration Logic in APIs with BakerHow to Develop Orchestration Logic in APIs with Baker
How to Develop Orchestration Logic in APIs with Baker
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPICrystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPI
 
APIdays Paris 2019 - Getting Organized for APIs in the Corporate Environment ...
APIdays Paris 2019 - Getting Organized for APIs in the Corporate Environment ...APIdays Paris 2019 - Getting Organized for APIs in the Corporate Environment ...
APIdays Paris 2019 - Getting Organized for APIs in the Corporate Environment ...
 
OpenAPI at Scale
OpenAPI at ScaleOpenAPI at Scale
OpenAPI at Scale
 
WSO2Con US 2013 - Thinking of you. Customizing the store of the WSO2 API Mana...
WSO2Con US 2013 - Thinking of you. Customizing the store of the WSO2 API Mana...WSO2Con US 2013 - Thinking of you. Customizing the store of the WSO2 API Mana...
WSO2Con US 2013 - Thinking of you. Customizing the store of the WSO2 API Mana...
 
Building robust REST APIs
Building robust REST APIsBuilding robust REST APIs
Building robust REST APIs
 
apidays LIVE Australia 2020 - Federating API Development at Australia’s large...
apidays LIVE Australia 2020 - Federating API Development at Australia’s large...apidays LIVE Australia 2020 - Federating API Development at Australia’s large...
apidays LIVE Australia 2020 - Federating API Development at Australia’s large...
 
Managing API with Microsoft API Management
Managing API with Microsoft API ManagementManaging API with Microsoft API Management
Managing API with Microsoft API Management
 

Recently uploaded

ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEHimani415946
 
Production 2024 sunderland culture final - Copy.pptx
Production 2024 sunderland culture final - Copy.pptxProduction 2024 sunderland culture final - Copy.pptx
Production 2024 sunderland culture final - Copy.pptxChloeMeadows1
 
Article writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptxArticle writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptxabhinandnam9997
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
 
Bug Bounty Blueprint : A Beginner's Guide
Bug Bounty Blueprint : A Beginner's GuideBug Bounty Blueprint : A Beginner's Guide
Bug Bounty Blueprint : A Beginner's GuideVarun Mithran
 
The Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case StudyThe Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case StudyDamar Juniarto
 
Case study on merger of Vodafone and Idea (VI).pptx
Case study on merger of Vodafone and Idea (VI).pptxCase study on merger of Vodafone and Idea (VI).pptx
Case study on merger of Vodafone and Idea (VI).pptxAnkitscribd
 
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkkaudience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkklolsDocherty
 
Cyber Security Services Unveiled: Strategies to Secure Your Digital Presence
Cyber Security Services Unveiled: Strategies to Secure Your Digital PresenceCyber Security Services Unveiled: Strategies to Secure Your Digital Presence
Cyber Security Services Unveiled: Strategies to Secure Your Digital PresencePC Doctors NET
 
Statistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdfStatistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdfOndejSur
 
Premier Mobile App Development Agency in USA.pdf
Premier Mobile App Development Agency in USA.pdfPremier Mobile App Development Agency in USA.pdf
Premier Mobile App Development Agency in USA.pdfappinfoedgeca
 
Pvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdfPvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdfPvtaan
 
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理aagad
 
How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?Linksys Velop Login
 

Recently uploaded (14)

ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
 
Production 2024 sunderland culture final - Copy.pptx
Production 2024 sunderland culture final - Copy.pptxProduction 2024 sunderland culture final - Copy.pptx
Production 2024 sunderland culture final - Copy.pptx
 
Article writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptxArticle writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptx
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
Bug Bounty Blueprint : A Beginner's Guide
Bug Bounty Blueprint : A Beginner's GuideBug Bounty Blueprint : A Beginner's Guide
Bug Bounty Blueprint : A Beginner's Guide
 
The Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case StudyThe Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case Study
 
Case study on merger of Vodafone and Idea (VI).pptx
Case study on merger of Vodafone and Idea (VI).pptxCase study on merger of Vodafone and Idea (VI).pptx
Case study on merger of Vodafone and Idea (VI).pptx
 
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkkaudience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
 
Cyber Security Services Unveiled: Strategies to Secure Your Digital Presence
Cyber Security Services Unveiled: Strategies to Secure Your Digital PresenceCyber Security Services Unveiled: Strategies to Secure Your Digital Presence
Cyber Security Services Unveiled: Strategies to Secure Your Digital Presence
 
Statistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdfStatistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdf
 
Premier Mobile App Development Agency in USA.pdf
Premier Mobile App Development Agency in USA.pdfPremier Mobile App Development Agency in USA.pdf
Premier Mobile App Development Agency in USA.pdf
 
Pvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdfPvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdf
 
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
 
How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?
 

plone.api

Editor's Notes

  1. I’m Gil Forcada, Plone developer, part of the testing team in Plone and working at der Freitag a German weekly newspaper
  2. Before diving into plone.api, just a quick survey to know a bit about the audience
  3. Python distribution that provides a simple API to interface with Plone to cover 20% of the tasks any Plone developer does 80% of the time
  4. I’m done!
  5. I’m not the one behind it, I barely made some fixes and small additions to it
  6. If anyone of this list is here, please stand up (applause)
  7. - way too many ways to do the same thing - way too many packages to know where to look for functionality - inconsistent APIs - where to learn the basics?
  8. So, how did they get there?
  9. Documentation driven development
  10. Test driven development
  11. Style guide driven development Code style guide How to contribute How-to release All of it upstreamed!
  12. So now to something different... Anyone took a look at the code?
  13. Migrating code using old arcane APIs to plone.api makes your code express their intention way more clearer All of a sudden your code looks far more readable
  14. Golden rule «make your code blend with the surrounding code»
  15. All these numbers are pull requests for plone.api that have something very speciall in common
  16. Every pull request changes these 4 files: - a changelog entry: brief description of what was changed - documentation for how to use the new functionality - tests to ensure the functionality works as expected - the code itself
  17. - releases - public code - docs - testing - coverage