Core API

Purpose

The purpose of the core API is to provide access to data produced by AstroPlant kits and to control those kits. The API provides raw data, so that it's completely up for analysis after it's been served.

If you are looking for a way to gather raw data from your kit into an application or analysis directly from the API, or to programmatically control your kit—or even to create your own control interface—you are in the right place.

This documentation will go over the concepts used in the API. The exact endpoints and data models are prescribed by an OpenAPI specification. A Swagger UI to explore the specification can be found here.

Technical architecture and implementation

If you are not interested in how the API is made, but want to know what you can do with it, you can skip this part and directly go to the Getting Started section.

The API implementation source code is available here. This program provides controlled access to the back-end, performing authentication and authorization, and enforces constraints on data state. This allows the API to be exposed publicly on the internet, to en enable users to securely and safely control the back-end and the kits connected to it. It also implements a controlled gateway of directly communicating with kits through the Kit Remote Procedure Call protocol.