Skip to content

server/app/interfaces/repository.py: Implement missing /submodels/{submodelIdentifier} endpoints #529

@moritzsommer

Description

@moritzsommer

Current Situation

Currently, several server endpoints under /submodels/{submodelIdentifier} are not implemented:

"/$metadata", methods=["PATCH"], endpoint=self.not_implemented
"/$value", methods=["GET"], endpoint=self.not_implemented
"/$value", methods=["PATCH"], endpoint=self.not_implemented
"/$path", methods=["GET"], endpoint=self.not_implemented

According to the Submodel Repository Service OpenAPI Specification, the PATCH /submodels/{submodelIdentifier}/$metadata endpoint should update the metadata attributes of an existing Submodel.

[...]
responses:
        '204':
          description: Submodel updated successfully
[...]

The GET /submodels/{submodelIdentifier}/$value endpoint should return the specific Submodel in its value only representation.

[...]
responses:
        '200':
          description: Requested Submodel
          content:
            application/json:
              schema:
                $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.1#/components/schemas/SubmodelValue'
[...]

The PATCH /submodels/{submodelIdentifier}/$value endpoint should support the updating of the values of an existing Submodel.

[...]
responses:
        '204':
          description: Submodel updated successfully
[...]

The GET /submodels/{submodelIdentifier}/$path endpoint should return a specific Submodel in path notation.

[...]
responses:
        '200':
          description: Requested Submodel
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.1#/components/schemas/PathItem'
[...]

This issue specifies #439.

Proposed Change

We should evaluate and, if feasible, implement the four missing PATCH /submodels/{submodelIdentifier}/$metadata, GET /submodels/{submodelIdentifier}/$value, PATCH /submodels/{submodelIdentifier}/$value and GET /submodels/{submodelIdentifier}/$path endpoints according to the specification.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureA new featureserverSomething to do with the `server` package

    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