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
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 (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
Arnaud 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 Factory
IBM France Lab
 
Paving roads
Paving roadsPaving roads
Paving roads
gilforcada
 
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
Paradigma 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 Simplicity
New Relic
 
Agile Apps
Agile AppsAgile Apps
Agile Apps
Giulio Roggero
 
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
Alberto De Ávila Hernández
 
[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 2015
Steve 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 Disaster
Bert Jan Schrijver
 
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
Maksym Savisko
 
FAKE (F# Make) & Automation
FAKE (F# Make) & AutomationFAKE (F# Make) & Automation
FAKE (F# Make) & Automation
Sergey 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 development
Codemotion
 
Phonegap 1.0
Phonegap 1.0Phonegap 1.0
Phonegap 1.0
Brian LeRoux
 
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
 
Pluginize ALL the things
Pluginize ALL the thingsPluginize ALL the things
Pluginize ALL the things
Jose Diaz-Gonzalez
 
Github, Travis-CI and Perl
Github, Travis-CI and PerlGithub, Travis-CI and Perl
Github, Travis-CI and Perl
Dave Cross
 
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
Arnaud 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 Factory
IBM 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 projects
Paradigma 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 Simplicity
New 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 2015
Steve 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 Disaster
Bert Jan Schrijver
 
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
Maksym Savisko
 
FAKE (F# Make) & Automation
FAKE (F# Make) & AutomationFAKE (F# Make) & Automation
FAKE (F# Make) & Automation
Sergey 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 development
Codemotion
 
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
 
Github, Travis-CI and Perl
Github, Travis-CI and PerlGithub, Travis-CI and Perl
Github, Travis-CI and Perl
Dave Cross
 

Viewers also liked (13)

Tiffanyp2
Tiffanyp2Tiffanyp2
Tiffanyp2
nycdoe
 
15 fotos bettas 2012
15 fotos bettas 201215 fotos bettas 2012
15 fotos bettas 2012
Aquatic Alzira
 
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 Students
Sevenoaks ACE
 
Conference PefNet in CZ
Conference PefNet in CZConference PefNet in CZ
Conference PefNet in CZ
Miss. Antónia FICOVÁ, Engineer. (Not yet Dr.)
 
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
Alin 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 Python
MoscowDataFest
 
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
MoscowDataFest
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности Python
PyNSK
 
TravellingAbroadSlideShow
TravellingAbroadSlideShowTravellingAbroadSlideShow
TravellingAbroadSlideShow
Winnia
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторы
Theoretical mechanics department
 
Backtesting Trading Strategies with R
Backtesting Trading Strategies with RBacktesting Trading Strategies with R
Backtesting Trading Strategies with R
eraviv
 
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
Liang C. Zhang (張良丞)
 
Tiffanyp2
Tiffanyp2Tiffanyp2
Tiffanyp2
nycdoe
 
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 Students
Sevenoaks 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 AngularJS
Alin 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 Python
MoscowDataFest
 
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
MoscowDataFest
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности Python
PyNSK
 
TravellingAbroadSlideShow
TravellingAbroadSlideShowTravellingAbroadSlideShow
TravellingAbroadSlideShow
Winnia
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторы
Theoretical mechanics department
 
Backtesting Trading Strategies with R
Backtesting Trading Strategies with RBacktesting Trading Strategies with R
Backtesting Trading Strategies with R
eraviv
 
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
Liang C. Zhang (張良丞)
 

Similar to plone.api (20)

API Best Practices
API Best PracticesAPI Best Practices
API Best Practices
Andreas Krohn
 
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
Postman
 
shanghai
shanghaishanghai
shanghai
Rudiger Peng
 
Web2 Expo Presentation
Web2 Expo PresentationWeb2 Expo Presentation
Web2 Expo Presentation
Richard Francis
 
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 January
AmirKhan913627
 
Why APIs are important
Why APIs are importantWhy APIs are important
Why APIs are important
Andreas Krohn
 
Postman covid-webinar
Postman covid-webinarPostman covid-webinar
Postman covid-webinar
Postman
 
Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
Paul Gallagher
 
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 serverless
Yan 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 Baker
Jordy 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/OpenAPI
Scott 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 Scale
Nordic 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 APIs
Nejc 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 Management
Shahriar Hossain
 
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
Postman
 
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 January
AmirKhan913627
 
Why APIs are important
Why APIs are importantWhy APIs are important
Why APIs are important
Andreas Krohn
 
Postman covid-webinar
Postman covid-webinarPostman covid-webinar
Postman covid-webinar
Postman
 
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 serverless
Yan 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 Baker
Jordy 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/OpenAPI
Scott 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 Scale
Nordic 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 APIs
Nejc 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 Management
Shahriar Hossain
 

Recently uploaded (19)

highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)
APNIC
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)
APNIC
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 

plone.api

Editor's Notes

  • #3: I’m Gil Forcada, Plone developer, part of the testing team in Plone and working at der Freitag a German weekly newspaper
  • #4: Before diving into plone.api, just a quick survey to know a bit about the audience
  • #7: 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
  • #8: I’m done!
  • #9: I’m not the one behind it, I barely made some fixes and small additions to it
  • #10: If anyone of this list is here, please stand up (applause)
  • #11: - 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?
  • #20: So, how did they get there?
  • #21: Documentation driven development
  • #22: Test driven development
  • #23: Style guide driven development Code style guide How to contribute How-to release All of it upstreamed!
  • #28: So now to something different... Anyone took a look at the code?
  • #29: 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
  • #30: Golden rule «make your code blend with the surrounding code»
  • #31: All these numbers are pull requests for plone.api that have something very speciall in common
  • #32: 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
  • #33: - releases - public code - docs - testing - coverage