This commit is contained in:
2020-01-22 19:13:18 +00:00
parent e78b54b040
commit 0d1988a20e
16 changed files with 127 additions and 136 deletions

View File

@@ -126,7 +126,7 @@ https://en.wikipedia.org/wiki/Non-functional_requirement
- REST best practices
- Excellent reference guide here: https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md
- URLS: A good api url: https://api.ayanova.com/v1.0/client/22
- URLS: A good api url: https://api.ayanova.com/v1.0/customer/22
- Keep length under 2000 characters for maximum client compatibility
- concurrency (The ETag response-header field provides the current value of the entity tag for the requested variant. Used with If-Match, If-None-Match and If-Range to implement optimistic concurrency control.)
- JSON property names SHOULD be camelCased.
@@ -135,11 +135,11 @@ https://en.wikipedia.org/wiki/Non-functional_requirement
This object MUST contain name/value pairs with the names "code" and "message," and it MAY contain name/value pairs with the names "target," "details" and "innererror."
eg: error:{code=1200,message="blah"} error:{code=1200,message="blah",target="eg property name", details="details for programmer", innererror:}
- Versioning: this is an area I need to treat carefully, there are tools to make it easier:
- I will use URL Path segment versioning, i.e. api/v1.0/client/22
- I will use URL Path segment versioning, i.e. api/v1.0/customer/22
- https://www.hanselman.com/blog/ASPNETCoreRESTfulWebAPIVersioningMadeEasy.aspx
- https://github.com/Microsoft/aspnet-api-versioning/wiki
- https://github.com/Microsoft/aspnet-api-versioning/tree/master/samples/aspnetcore/SwaggerSample
- Push notifications (I.e. on a client record being created or a workorder updated or...?)
- Push notifications (I.e. on a customer record being created or a workorder updated or...?)
- If so there is a segment in the rest doc from microsoft that goes over it in detail
- API THROTTLING / RATE LIMITING
- https://github.com/stefanprodan/AspNetCoreRateLimit