hpi-schul-cloud / resources-api-v1

DEPRECATED
GNU Affero General Public License v3.0
2 stars 4 forks source link

resources-api-v1

CCCC draft Build Status PyPI npm (scoped)

The API specification to add content to the Schul-Cloud. This is the Resources API from the architecture. It should be the minimal example of what works for all content providers.

Communication

The design process follows the Collective Code Construction Contract.

Repository Structure

API

These are the API endpoints defined in the documentation.

Resources API

The resources API is specified in the api-definition. You can view it on swaggerhub. This API is tested and implemented by the schul_cloud_resources_server_tests. If you want to implement the API, please refer to the tests.

Errors follow the error schema.

Authorization

The API only specifies how to authenticate. Depending on the implementation, it differs where you get the authentication from.

A recommendation is that if you could not authenticate, the server shows a page telling you where to get accepted credentials.

The api specifies authentication via api key and basic authentication. If you want to add another authentication mechanism, please open an issue.

It is clearly defined how to do basic access authentication. Instead of no authentication and basic authentication, the Authorization header can be set to support api key authentication.

Example:

Authorization: api-key key=base64encodedkey

Because the Authorization header is used, one cannot authenticate with both, an api key and basic authentication.

Further Reading:

Search API

This API is tested and implemented by the schul_cloud_search_tests. If you want to implement the API, please refer to the tests.

Related Work:

Research

DONE

TODO

Automated Build

The automated build is done by Travis-CI. It does the following:

Further Reading