API Rest
The goal of SOGo 6 is to offer an API rest for any kind of client: web application, scripts, UI, NON-UI…
Limitations
Not API Rest only
SOGo 6 application cannot be only an API Rest as it is also a server for other protocols such as CalDAV or MAPI. However, the API rest provides all the methods needed to fully operate SOGo and its resources.
Idempotency
SOGo 6 cannot be completely idempotent, meaning that two identical successive requests must have the same effects and outcomes.
For two reasons:
-
SOGo is a client of many services that it doesn’t own or manage the resources of. The mails for example. They are managed by the IMAP server. So two SOGo requests to get a mail may output different results.
-
SOGo is a server for other protocols. The events for example, a CalDAV request may change an event. So two SOGo requests to get an event may output different results.
Useful resource
Introduce the Representational State Transfer (REST) architectural style
It describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions
This proposal adds a new HTTP method, PATCH, to modify an existing HTTP resource.
Add 428 Precondition Required, 429 Too Many Requests, 431 Request Header Fields Too Large and 511 Network Authentication Required
Describes their respective protocol. They both use the same HTML semantic RFC.
List of all HTTP specs and resources