- RESTful API
- Hypermedia / linked-data
- JSON API
- API Calls should use header to set JSON format and versioning.
- Versioning should be included but we will decide later if we want to support multiple versions at the same time
- Field names just map over. Do not try to rewrite attributes (e.g. isPrincipiaFoldish -> is_folderish)
- Design & documentation first
- Tests and testing infrastructure second
- Start working on the implementation only if docs and tests are set up.
- Do proof-of-concepts to make sure our basic design will work
Zupo offered to review our process and makes sure we are doing it right (like plone.api).
Start with a minimal viable API and go on from there:
- Just browse as anonymous user (GET ONLY)
- Authentication
- Basic CRUD + workflow
- Expose full Plone API
- JSON-LD
- JSON Schema
- Hydra
- Collection+JSON
- ...
- APIary: https://app.apiary.io/plonerestapi
- Swagger: http://petstore.swagger.wordnik.com/
- Sphinx-based?
- Robot-Framework based?
- ZServer GET/POST/PUT/DELETE
- Convert: Dexerity Object -> JSON
- JSON-LD
https://github.com/plone/plone.restapi http://plonerestapi.readthedocs.org/en/latest/
People willing to review API:
- laurence
- Martin
- Nejc
- Ramon
- Maurits
- Harald friesenegger
- Gil
- davisagli
- martior
- witsch