Skip to content

Level of detail on API specifications #148

@enikao

Description

@enikao

For the APIs described by LIonWeb, which parts to we specify?

Assumption: We're talking about HTTP REST APIs.

Possible levels:

  1. Set of APIs
  2. Conceptual features of the API
  3. Partial data format on the wire
  4. Precise data format on the wire
  5. Minimal set of parameters
  6. Required and optional parameters
  7. Exact format of each parameter
  8. Endpoint address

"data format on the wire" means the precise serialization format of content/payload, i.e. nodes, as exchanged between LIonWeb components.

On 2023-07-07, we decided to describe conceptual features and precise serialization format, but not more. This corresponds to level 4.

Rationale: Every repository needs a different set of parameters (e.g. Modelix always needs a version tag, and the internal node id. MPS (as bulk server) needs a model id and some node ids). Similar for endpoint addresses.
The architectural solution would be another level of indirection. But then we essentially implement service discovery, which is definitely out of scope for LIonWeb.

Consequence: LIonWeb components cannot combine via plug&play -- each system needs to bind the components together in its own way. LIonWeb provides a common language to converse in once the participants found each other, and established their communication channels.

We might extend the level in the future, or in an additional spec.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions