plone.restapi is a RESTful hypermedia API for Plone.
Project description
Introduction
plone.restapi is a RESTful hypermedia API for Plone.
RESTful Hypermedia API
REST stands for Representational State Transfer. It is a software architectural principle to create loosely coupled web APIs.
Most web APIs have a tight coupling between client and server. This makes them brittle and hard to change over time. It requires them not only to fully document every small detail of the API, but also write a client implementation that follows that specification 100% and breaks as soon as you change any detail.
A hypermedia API just provides an entry point to the API that contains hyperlinks the clients can follow. Just like a human user of a regular website, that knows the initial URL of a website and then follows hyperlinks to navigate through the site. This has the advantage that the client just needs to understand how to detect and follow links. The URL and other details of the API can change without breaking the client.
Documentation
Roadmap
Live Demo
Heroku live demo:: http://stormy-headland-44390.herokuapp.com/Plone/
Design Decisions
A truly RESTful API (Hypermedia / HATEOAS / Linked-data)
JSON is the main target formt, support other formats (HTML, XML) later
Use HTTP headers (to set format and versioning, also provide URL-based option to make it easier for people to try it out)
No versioning, version in the HTTP header can be added later
Field names just map over (we will not try to clean up attributes or enforce naming standards like pep8 (e.g. isPrincipiaFoldish -> is_folderish)
Software Quality
100% Test Coverage
100% PEP8 compliant
Further Reading
Standards
License
The project is licensed under the GPLv2.
Contributors
- Note: place names and roles of the people who contribute to this package
in this file, one to a line, like so:
Timo Stollenwerk, Original Author
Thomas Buchberger
Lukas Graf
Víctor Fernández de Alba
Paul Roeland
Mikel Larreategi
Changelog
1.0a1 (2016-07-14)
Initial release. [timo,buchi,lukasgraf,et al.]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.