docs(api-spec): document route canonicalization behavior#2993
docs(api-spec): document route canonicalization behavior#2993nighca merged 1 commit intogoplus:devfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the OpenAPI specification to support resource redirection and normalization for historical usernames and routes. It introduces 301 Moved Permanently and 409 Conflict responses across user, project, and release endpoints, along with new schemas for MovedResourceError and MovedResourceCanonical to provide canonical metadata. I have no feedback to provide.
Handle moved-resource responses from the backend so path-based writes retry once with the canonical route and body-derived create requests rewrite their route fields before retrying. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend so path-based writes retry once with the canonical route and body-derived create requests rewrite their route fields before retrying. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
5d36776 to
88efda3
Compare
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
There was a problem hiding this comment.
Pull request overview
Updates the API specification to explicitly document the route canonicalization contract, including how historical routes/usernames are handled and how clients should interpret/resolve moved-resource responses.
Changes:
- Documented that several query parameters accept historical usernames/routes and are transparently normalized to canonical values.
- Added explicit moved-resource responses on affected endpoints (
301for canonical redirects and409with a canonical payload for non-idempotent operations/inputs). - Introduced reusable OpenAPI components for moved-resource responses and the
MovedResourceError/MovedResourceCanonicalschemas.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Good addition — the query-parameter normalization notes and reusable |
88efda3 to
db42b8e
Compare
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
db42b8e to
2267eea
Compare
Document the route canonicalization contract in `docs/openapi.yaml`, including moved-route responses and query normalization. Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
2267eea to
7311cde
Compare
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates goplus#2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Handle moved-resource responses from the backend without generic write retries, and retry updateProject once with the canonical route so saving existing projects still works after a project rename. Replace unresolved user, project, and editor routes with canonical backend values after loading so subsequent UI behavior uses canonical identifiers consistently. Updates #2993 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
Document the route canonicalization contract in
docs/openapi.yaml, including moved-route responses and query normalization.