Coder Social home page Coder Social logo

toniginard / plone.restapi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from plone/plone.restapi

0.0 1.0 0.0 2.24 MB

RESTful hypermedia API for Plone.

Home Page: http://plonerestapi.readthedocs.org/

Makefile 0.05% Python 99.74% RobotFramework 0.05% Shell 0.16%

plone.restapi's Introduction

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

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 to write a client implementation that follows that specification 100% correctly 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 as a human user of a regular website knows the initial URL of the site and then follows hyperlinks to navigate through the site. This has the advantage that the client needs to understand only 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

A live demo of Plone 5 with the latest plone.restapi release is available at:

http://plonedemo.kitconcept.com

Example GET request on the portal root:

$ curl -i http://plonedemo.kitconcept.com -H "Accept: application/json"

Example POST request to create a new document:

$ curl -i -X POST http://plonedemo.kitconcept.com -H "Accept: application/json" -H "Content-Type: application/json" --data-raw '{"@type": "Document", "title": "My Document"}' --user admin:admin

Note

You will need some kind of API browser application to explore the API. We recommend using Postman.

Design Decisions

  • A truly RESTful API (Hypermedia / HATEOAS / Linked-data)
  • JSON is the main target format; support for other formats (HTML, XML) will come 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; versioning 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
  • Documentation-first approach for enhancements

Further Reading

Standards

License

The project is licensed under the GPLv2.

plone.restapi's People

Contributors

tisto avatar jaroel avatar lukasgraf avatar buchi avatar sneridagh avatar csenger avatar erral avatar ebrehault avatar gagaro avatar polyester avatar witsch avatar gforcada avatar jone avatar cedricmessiant avatar simonedeponti avatar prakharjoshi avatar ajayns avatar tomgross avatar tkimnguyen avatar syzn avatar bloodbare avatar mrtango avatar lccruz avatar annegilles avatar casdr avatar davilima6 avatar hvelarde avatar thet avatar waffle-iron avatar nazrulworld avatar

Watchers

Toni Ginard avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.