Skip to content

Using The API

cobbr edited this page Oct 5, 2019 · 2 revisions

Using the API

Covenant comes with a powerful API that can be used to create Covenant extensions, perform automation, gain access to data not presented in the web interface, or debug during development.

Covenant also uses Swagger UI, which provides a UI to visualize and interact with Covenant's API.

Swagger UI

To interact with the API using Swagger UI, navigate to: https://<covenant-address>:7443/swagger

Swagger UI

This interface allows you to interact with Covenant's API endpoints and provides helpful templates for what an API call should look like. Covenant's API requires authentication for security purposes, so you must logon via the POST /api/users/login API endpoint prior to interacting with any of the other endpoints.

Logon API

Clicking on the POST /api/users/login endpoint should reveal a textbox that you can input the required information for the API. Clicking on the "Example Value" box on the right will place a template into the textbox for you. For this call, the username and password parameters should be completed with valid information, and clicking on the "Try it out!" button will execute the API call.

Logon API Result

Covenant will respond with a success field indicating whether or not the logon succeeded. If it did succeed, the covenantToken field should contain a JWT that we can use for authentication for future API calls. We can provide this value to the Swagger UI page by clicking on the Authorize button at the top of the page.

Authorize Bearer

Clicking the Authorize button reveals a dialog prompt. You should place the string "Bearer " into this field and click Authorize, which informs Swagger UI of our credentials for future API requests.

Now, we should be able to use any of Covenant's API endpoints from this interface!

Grunts API

The C# API Client

Covenant includes a built-in C# API client that can be used in other projects to extend or automate the functionality of Covenant. The built-in client can be found here.

Including this client in an C# project will introduce the Covenant.API namespace, which can be used to interact with Covenant's API. You can find examples of this API in use within Covenant itself here.

Generating new API Clients

Covenant distributes the OpenAPI specification for the Covenant API, which can be found here.

OpenAPI specifications can be used to generate API client using various API code generators. Covenant's C# API client is generated by using autorest. Autorest can generate clients in various languages, such as: C#, Python, Java, Go, etc. You can use Autorest, Swagger CodeGen, or any other OpenAPI compatible tools to generate new API clients.

Clone this wiki locally