This repository contains Netlify's API definition in the Open API format, formerly known as Swagger.
It's still a work in progress and we welcome feedback and contributions.
Usage
The swagger.yml
file is the master copy of the Open API 2.0 definition. Additional context on using the API can be found on our docs site.
The spec is published and versioned for various ecosystems:
SwaggerUI (Web UI)
You can view the definition using Swagger UI by visiting open-api.netlify.com which provides limited interaction with the API from the browser.
Go Client
$ go get github.com/netlify/open-api/...
- Porcelain: High level interactions and operations
- Plumbing: Low level client operations generated by go-swagger
- Models: Models generated by go-swagger
See CONTRIBUTING.md for details on how this client is developed and generated.
JS Client
We have a fully featured JS/Node.js client that implements some of the same 'porcelain' methods that the go client does in addition to the open-api methods.
See github.com/netlify/build/tree/main/packages/js-client for more details.
npm module
You can also consume the swagger spec as an npm module:
$ npm install @netlify/open-api
# or
$ yarn add @netlify/open-api
import spec from '@netlify/open-api' // import the spec object into your project
The module also ships a copy of the original yml
spec file at @netlify/open-api/js/dist/swagger.yml
. You can use these with generic swagger/open-api clients:
swagger-js
Swagger's JS client can dynamically create a client from a spec either from a URL or spec object.
See the swagger-js client:
Usage
<script src='browser/swagger-client.js' type='text/javascript'></script>
<script>
var swaggerClient = new SwaggerClient('https://open-api.netlify.com/swagger.json');
</script>
Contributing
See CONTRIBUTING.md for more info on how to make contributions to this project.
License
MIT. See LICENSE for more details.