HTTP

7 bookmarks
Custom sorting
How to Generate JSON Schema Effectively and Efficiently
How to Generate JSON Schema Effectively and Efficiently
Creating a JSON schema can be a crucial step in ensuring data consistency and quality, especially when dealing with APIs and data exchange. Below is a detailed guide on how to create a JSON schema:
·apidog.com·
How to Generate JSON Schema Effectively and Efficiently
Bump CLI
Bump CLI
This site contains the Bump.sh documentation, product updates descriptions, examples of how to use Bump.sh, as well as guides to help you build better REST APIs (OpenAPI) and event-driven architectures (AsyncAPI).
·docs.bump.sh·
Bump CLI
Real Estate API documentation
Real Estate API documentation
Real Estate API - Focused Specification > OpenAPI specification for tailored for use with the {landrise.reapi} R package. Endpoints Includes specifications for the Real Esta...
·bump.sh·
Real Estate API documentation
Bump.sh Documentation
Bump.sh Documentation
This site contains the Bump.sh documentation, product updates descriptions, examples of how to use Bump.sh, as well as guides to help you build better REST APIs (OpenAPI) and event-driven architectures (AsyncAPI).
·docs.bump.sh·
Bump.sh Documentation
Validating API Requests
Validating API Requests
Techniques for API Request Validation
A promise of REST APIs is good decoupling of clients and services. This is achieved in part by reducing business logic as much as possible in the client application. For example, a client application may use a form for collecting information used in a POST operation to create an API resource, or to edit an existing resource before updating it with a PUT or PATCH operations. The client then maps the form fields to the properties of the operation’s request body. Clients can use front end frameworks and libraries to perform lots of low-level validation in the front end corresponding to JSON schema constraints
Forms which use required data fields for properties that are required in the JSON schema using date pickers checkboxes for selecting Boolean true or false values drop down lists that allows selection from a list of fixed enum values constrained numeric text entry form fields that enforce a regular expression from a pattern constraint
However, this only covers “syntactic” or static field-level validation. Often, an API will also have business rules that the client must follow. Secure API services will enforce those business rules in the API operations
Parse the options and (JSON) request body and return a 400 Bad Request if any of the request data is malformed (i.e. does not satisfy the constraints of the operation (such as required body or required parameters) or all the JSON Schemas associated with the operation’s parameters or request body) Verify that the caller passes valid Authorization to the API call, and return 401 Unauthorized if not Verify that the caller is authorized to perform the API operation, and return a 403 Forbidden error if not. Verify the state of the application and return 409 Conflict if the operation would put the application into an inconsistent state Verify the semantics of the request body and return a 422 Unprocessable Content error if the request is incomplete, inconsistent, or otherwise invalid
One way to implement a dry run is to create a separate "validation” operation for each API operation. This has the significant disadvantage of greatly increasing the footprint (size) of the API and adding a lot of duplication.
Rather than duplicate operations to add sibling validation operations, another approach is to add a ?dryRun=true query parameter to the operations. When used, the operation can return 204 No Content if the request contains no problems. The dryRun parameter acts as a “short circuit” in the API operation. The implementation performs the full validation it would normally do before executing the desired behavior, but then stops before actually executing anything other than the validation.
This pattern has a small impact on the API footprint compared to making sibling validation operations. A smaller footprint makes the API easier to read and understand. It is also a good use of the DRY principal, since you do not have to duplicate the definition of all the operation request parameters and request bodies, which opens up the chance for them to become out of sync.
·substack.com·
Validating API Requests