Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shipengine/shipengine-json-schema
The official JSON Schemas for ShipEngine™
https://github.com/shipengine/shipengine-json-schema
address-validation address-verification api-schema json-schema rest-api schemas shipment-tracking shipping shipping-api shipping-label shipping-rates
Last synced: 3 months ago
JSON representation
The official JSON Schemas for ShipEngine™
- Host: GitHub
- URL: https://github.com/shipengine/shipengine-json-schema
- Owner: ShipEngine
- Created: 2018-10-31T17:29:35.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-05-17T14:59:02.000Z (over 1 year ago)
- Last Synced: 2024-11-01T15:47:15.541Z (3 months ago)
- Topics: address-validation, address-verification, api-schema, json-schema, rest-api, schemas, shipment-tracking, shipping, shipping-api, shipping-label, shipping-rates
- Language: JavaScript
- Homepage:
- Size: 833 KB
- Stars: 6
- Watchers: 22
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![JSON Schema Logo](https://shipengine.github.io/img/json-schema-logo.png) ShipEngine™ JSON Schemas
==============================================This repo contains the official [JSON Schemas](https://json-schema.org/) for the [ShipEngine API](https://shipengine.com). You can use these schemas with any of countless [JSON Schema tools](https://json-schema.org/implementations.html) to perform validation, generate models, etc.
Usage in Node.js
-----------------------------------
To use in Node.js, just `require()` or `import` this repo's directory. The imported object has the same structure as [`index.json`](index.json), except that the `requestSchema` and `responseSchemas` are actual JSON Schema objecs, rather than just file paths. You can use these schemas with a JSON Schema validator, such as [AJV](https://www.npmjs.com/package/ajv).```javascript
const shipengine = require("shipengine-json-schema");
const AJV = require("ajv");// Initialize AJV, ignoring our custom formats
let ajv = new AJV({ unknownFormats: "ignore" });// Get the JSON Schema for a specific API endpoint
let schema = shipengine["/v1/labels/shipment/{shipment_id}"].post.requestSchema;// Validate an API request body against the schema
let isValid = ajv.validate(schema, {
validate_address: "validate_and_clean",
label_layout: "4x6",
label_format: "pdf",
});
```File Structure
-----------------------------------|Path |Description
|:--------------------------|:--------------------------------
|[`index.json`](index.json) |This file is a JSON map of the request and response schemas for each API endpoint.
|[`requests`](requests) |This directory contains separate JSON Schema files for every ShipEngine API request body. Each file is fully-dereferenced (doesn't contain any [`$ref` pointers](https://json-schema.org/latest/json-schema-core.html#rfc.section.8.3)), so it should work with any tool or library.
|[`responses`](responses) |This directory contains separate JSON Schema files for every ShipEngine API response body. Each file is fully-dereferenced (doesn't contain any [`$ref` pointers](https://json-schema.org/latest/json-schema-core.html#rfc.section.8.3)), so it should work with any tool or library.Other API Definition Formats
-----------------------------------### ![OpenAPI Logo](https://shipengine.github.io/img/openapi-logo-small.png) OpenAPI
The official ShipEngine [OpenAPI 3.0 definitions](https://github.com/ShipEngine/shipengine-openapi). The OpenAPI format is supported by many [tools and libraries](https://openapi.tools/) for every major technology stack.### ![Postman Logo](https://shipengine.github.io/img/postman-logo-small.png) Postman
The official [Postman reference collection](https://documenter.getpostman.com/view/305204/SW7W5V6o) for ShipEngine. Just import it into [Postman](https://getpostman.com) and immediately begin interacting with the ShipEngine API.New to ShipEngine? Download our [walkthrough collection instead](https://documenter.getpostman.com/view/305204/SW7XbA6V).
### ![Redoc Logo](https://shipengine.github.io/img/redoc-logo-small.png)
View the ShipEngine API definition [online in your browser](https://shipengine.github.io/shipengine-openapi/). This web page is generated from the [OpenAPI definition](https://github.com/ShipEngine/shipengine-openapi) using [ReDoc](https://github.com/Redocly/redoc).