astarte-platform/astarte-go

[meta] Provide a new API

Closed this issue · 2 comments

The current API is quirky and difficult to integrate as a dependency, especially for AppEngine-related functions.
Provide a new, polished and idiomatic API.

The following packages will be exported:

  • interfaces: interface parsing and validation,
  • device-utils: Astarte device ID generation and handling (e.g. conversion to/from UUID),
  • auth: all things related to Astarte auth (via JWT),
  • client: HTTP client for Astarte services aimed at interacting with the Astarte APIs and parsing retrieved data.
  • data: parsing functions for data retrieved using the client package.

This is a major change, and possibly breaking. As such, parts of the current codebase will be rewritten: as the Go modules reference suggest, a v0 version does not signal stability or backward compatibility guarantees.
The old API will be supported for now (see the release-0.90 branch), and deprecated in the future.
A migration path to the new API should be provided, along with documantation on new guidelines and good practices.

This is a meta issue to keep track of all changes required.

The original message has been updated, i.e. the data package is not needed anymore (see #34).

All items have been completed.