Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

https://secure.travis-ci.org/plone/plone.restapi.png?branch=master https://coveralls.io/repos/plone/plone.restapi/badge.png?branch=master https://readthedocs.org/projects/pip/badge/ Code Health 'Stories in Ready'

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

http://plonerestapi.readthedocs.org

Roadmap

https://github.com/plone/plone.restapi/milestones

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 format, 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.0a9 (2017-03-03)

New Features:

  • Make date and datetime fields provide a ‘widget’ attribute. [timo]

  • Add documentation for types endpoint schema. [timo]

  • Add basic groups CRUD operations in @groups endpoints [sneridagh]

  • Make @types endpoint include a ‘mode’ attribute. This fixes https://github.com/plone/plone.restapi/issues/198. [timo]

Bugfixes:

  • Fix queries to ensure ordering of container items by getObjectPositionInParent. [lgraf]

1.0a8 (2017-01-12)

New Features:

  • Add simple user search capabilities in the GET @users endpoint. [sneridagh]

Bugfixes:

1.0a7 (2016-12-05)

Bugfixes:

1.0a6 (2016-11-30)

New Features:

  • Introduce dedicated permission required to use REST API at all (assigned to everybody by default). [lgraf]

Bugfixes:

  • When token expires, PAS plugin should return an empty credential. [ebrehault]

1.0a5 (2016-10-07)

Bugfixes:

1.0a4 (2016-10-05)

New Features:

  • Make POST request return the serialized object. [timo]

  • Include ‘id’ attribute in responses. [timo]

1.0a3 (2016-09-27)

New Features:

  • Add @users endpoint. [timo]

Bugfixes:

  • Fix bug where disabling the “Use Keyring” flag wasn’t persisted in jwt_auth plugin. [lgraf]

1.0a2 (2016-08-20)

New Features:

  • Implements navigation and breadcrumbs components [ebrehault]

  • Add widget and support for RichText field in @types component. [ebrehault]

  • Add fieldsets in @types [ebrehault]

Bugfixes:

  • Disable automatic CSRF protection for @login and @login-renew endpoints: If persisting tokens server-side is enabled, those requests need to be allowed to cause DB writes. [lgraf]

  • Documentation: Fixed parameter ‘data’ to JSON format in JWT Authentication documentation [lccruz]

  • Tests: Fail tests on uncommitted changes to docs/source/_json/ [lgraf]

  • Tests: Use freezegun to freeze hard to control timestamps in response dumps used for documentation. [lgraf]

  • Tests: Limit available languages to a small set to avoid excessive language lists in response dumps used for documentation. [lgraf]

1.0a1 (2016-07-14)

  • Initial release. [timo,buchi,lukasgraf,et al.]

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plone.restapi-1.0a9.tar.gz (188.8 kB view details)

Uploaded Source

File details

Details for the file plone.restapi-1.0a9.tar.gz.

File metadata

  • Download URL: plone.restapi-1.0a9.tar.gz
  • Upload date:
  • Size: 188.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for plone.restapi-1.0a9.tar.gz
Algorithm Hash digest
SHA256 08692f1de1316a9a295f7aa76808d3b1c40bccc782c9bff0a62afb77722a5b37
MD5 0cec0ce092f1d851d599e3e3c7549817
BLAKE2b-256 b0395c0be4ab3231991e07e662289ac774149d5d925e9e44cf8cbef99899e6be

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page