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.

Authentication

#TODO

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