vatesfr / xen-orchestra

The global orchestration solution to manage and backup XCP-ng and XenServer.
https://xen-orchestra.com
Other
795 stars 265 forks source link

POC: new rest-api structure + openapi/swagger #8073

Open MathieuRA opened 1 month ago

MathieuRA commented 1 month ago

Description

POC for REST API redesign.

What about: tsoa?

For all objects that extend AbstractCollection, /rest/v0/${type}/ and /rest/v0/${type}/:id are automatically registered. For collections that are not a XAPI collection, such as users, simply add the getObjects and getObject methods in the class. If the endpoint point to one object. (/rest/v0/users/1234/foo), the object will be automatically resolved (using getObject) and injected in res.locals.object

/rest/v0/dashboard /rest/v0/hosts /rest/v0/hosts/:id /rest/v0/users /rest/v0/users/:id /rest/v0/vms /rest/v0/vms/foo /rest/v0/vms/:id /rest/v0/vms/:id/name_label

Checklist

Review process

This 2-passes review process aims to:

  • develop skills of junior reviewers
  • limit the workload for senior reviewers
  • limit the number of unnecessary changes by the author
  1. The author creates a PR.
  2. Review process:
    1. The author assigns the junior reviewer.
    2. The junior reviewer conducts their review:
      • Resolves their comments if they are addressed.
      • Adds comments if necessary or approves the PR.
    3. The junior reviewer assigns the senior reviewer.
    4. The senior reviewer conducts their review:
      • If there are no unresolved comments on the PR → merge.
      • Otherwise, we continue with 3.
  3. The author responds to comments and/or makes corrections, and we go back to 2.

Notes:

  1. The author can request a review at any time, even if the PR is still a Draft.
  2. In theory, there should not be more than one reviewer at a time.
  3. The author should not make any changes:
    • When a reviewer is assigned.
    • Between the junior and senior reviews.