[http://creativecommons.org/licenses/by/3.0/]
This work is licensed under a CC
Attribution 3.0 Unported License [http://creativecommons.org/licenses/by/3.0/]
@dret
on Twitter/GitHub
APIs are the only visible parts of services in API-based service landscapes. The technical aspect of APIs has been widely discussed with description languages such as Swagger/OpenAPI. The non-functional aspects are harder to formalize, but can also benefit from a framework in which information can be represented and used. The idea of "API Labels" is equivalent to that of standardized labeling systems in other product spaces, for example for food or for machinery. There often is a framework in place that allows users to understand a few key (and often safety-critical) aspects of the product. This framework is not intended to be a complete and exhaustive description of the product. Instead, it focuses on areas that are important and helpful to make an initial product selection. In the API space, numerous standards and best practices have evolved how APIs can be described and/or documented. However, there still is some uncertainty how to best combine these, and how to use them so that API description, documentation, and labeling can be combined. This presentation provides an overview of the existing approaches, how to use them, and proposes an additional layer on top of which API labeling becomes more unified, and thus more useful.
@MattMcLartyBC
[http://twitter.com/MattMcLartyBC]@mamund
[http://twitter.com/mamund]@medjawii
[http://twitter.com/medjawii]@mitraman
[http://twitter.com/mitraman]@dret
[http://twitter.com/dret]Continuous API Management: Making the Right Decisions in an Evolving Landscape[https://www.amazon.com/Continuous-Api-Management-Decisions-Landscape/dp/1492043559]
APIs for Things)
When a measure becomes a target, it ceases to be a good measure.
Goal: Information about all/many products in large and diverse landscapes.
Non-goal: Every possible detail about every single product.
title
and version
are required)
info: title: Sample Pet Store App description: This is a sample server for a pet store. termsOfService: http://example.com/terms/ contact: name: API Support url: http://www.example.com/support email: support@example.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html version: 1.0.1
{ "name": "Fitbit", "description": "Fitbit designs products that track everyday health and fitness, empowering and inspiring people to lead healthier, more active lives.", "image": "https://www.fitbit.com/images/common/logo_with_trademark.png", "tags": [ "fitness" ], "created": "2015-01-01", "modified": "2015-01-01", "url": "https://www.fitbit.com/apis.json", "specificationVersion": "0.14", "apis": [ { "name": "Fitbit Web API", "description": "Fitbit designs products that track everyday health and fitness, empowering and inspiring people to lead healthier, more active lives.", "image": "https://www.fitbit.com/images/common/logo_with_trademark.png", "humanURL": "https://dev.fitbit.com/", "baseURL": "https://api.fitbit.com/",
id
/name
/short_name
/type
/owner
/description
)
id: next-generation-print-2342-2413-9189-1990 name: Next Generation Print Service short_name: NGPS type: service owner: Team Goldfinger description: Prints all kinds of things. Now with 3D printing support. vcsroot: git://git.vcs.local/UBP contact: Auric Goldfinger lifecycle: production tags: - Old - Demo links: homepage: http://wiki.local/ubp buildchain: http://ci.local/ubp api_docs: http://docs.local/ubp-api
version
) that are managed in an open registry [https://tools.ietf.org/html/draft-wilde-registries]{ "labels": { "API": { "version": "1.3.42", "SPDX-license": "ADSL", "http://example.com/APIlabels/demotype": "some label value" }}}
labels
link from API home document [http://webconcepts.info/specs/IETF/I-D/nottingham-json-home] for discovery
github.com/API-Labels
[https://github.com/API-Labels]API-Labels
[https://github.com/API-Labels] organization on GitHub
label-format
[https://github.com/API-Labels/label-format] repository for the label format
API-label-registry
[https://github.com/API-Labels/API-label-registry] repository for the registry of API labels
dret.net/lectures/oreilly-sa-2018
[http://dret.net/lectures/oreilly-sa-2018]@dret
[http://twitter.com/dret]