F1: Implement and document /projects API

Description: Create /projects API to manage collaboration projects:

  • GET /{project_id} returns {CollaborationProject} by ID
  • PUT /{project_ID} body {CollaborationProject} returns updated {CollaborationProject}
  • PATCH /{project_ID} body [{"op":"","path":"","value":""},...] returns patched {CollaborationProject}
  • DELETE /{project_id} soft deletes {CollaborationProject} by ID

Acceptance criteria:

  • Endpoints exist and responds with dummy (mocked) data.
  • Endpoints present in the OpenAPI YAML
  • Endpoints present in the OpenAPI /docs
  • Endpoints' input/output CollaborationProject schema shown in the OpenAPI documentation
  • All OpenAPI documentation is autogenerated from the API classes/codes descriptions.

Testing scenarios:

  • As an API user I can get complete OpenAPI documentation about all API methods
    • as a rendered OpenAPI YAML document in the service repository on Gitlab
    • as a rendered OpenAPI YAML document by the deployed service's /docs endpoint
  • As an API user I get expected (as documented by the OpenAPI documentation) response from any of API methods

Tech Notes:

Edited by Rostislav Dublin (EPAM)