This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user