Additionally, the importer can generate classes and activity diagrams enabling the modeler to execute the imported services immediately.
Find here how OpenAPI entities are mapped to UML model elements.
Basic Building Blocks of a REST Service
A OpenAPI document is simply a set of nested definitions. The grammar is as follows:
Services are defined using the following elements:
|Description||More Information at ...|
|Specifies the Swagger specification version being used. The importer only supports Swagger 2.0.|
|Provides metadata about the API.|
|The title is used as name for the <<RESTInterface>>.|
|The description is used as documentation for the <<RESTInterface>>.|
|The version is only set in the <<RESTPortType>> if a new model is created with the import.|
|The host (name or IP) serving the API. This must be the host only and does not include the scheme nor sub-paths. It may include a port, though. host and port are set in the <<RESTAlias>> template.|
|The base path on which the API is served. basePath is relative to the host. If it is not included, the API is served directly under host. The basePath is set in the <<RESTAlias>> template.|
A list of transfer protocols of the API. The first scheme is set as protocol in the <<RESTAlias>> template.
A list of MIME types the APIs can consume.
A list of MIME types the APIs can produce.
|The available paths and operations for the API. <<RESTResource>> classes are created to reproduce each paths structure.|
|Allows for an external definition of this path item.|
|The http methods defined for this path. A <<REST>> operation is created for each methods.|
|A list of tags for API documentation control. An Usage is created from the operation to the corresponding <<RESTOperationTag>> for each tags.|
|A short summary of what the operation does. If the description if empty, the summary is used as documentation for the operation.|
|A verbose explanation of the operation behavior. The description is used as documentation for the operation.|
|Additional external documentation for this operation.|
|Unique string used to identify the operation.|
|A list of MIME types the operation can consume. As the REST adapter only support JSON and XML if consumes is defined and none of these are in the list the parameters are ignored.|
|A list of MIME types the operation can produce. As the REST adapter only support JSON and XML if produces is defined and none of these are in the list the responses are ignored.|
|A list of parameters of parameter reference that are applicable for this operation. A <<RESTParameter>> is created for each parameter object.||Parameter Object|
|The list of possible responses as they are returned from executing this operation. An output parameter is created for the default response status code (201 for POST, 200 for the others). For other response status codes a <<RESTResponseDefinition>> usage is created from the operation to the corresponding class. If the status code is < 400 or default, the <<RESTResponse>> stereotype is added to the class. If the status code is >= 400 or default the <<RESTError>> stereotype is added to the class.|
|A short description of the response. The description is used as a documentation for the parameter or the usage.|
A definition or definition reference of the response structure.
|A list of headers that are sent with the response.|
|An example of the response message. |
|The transfer protocol for the operation.|
|Declares this operation to be deprecated.|
|A declaration of which security schemes are applied to this operation.|
|A list of parameters that are applicable to all the operations described under this path.|
|A list to hold data types produced and consumed by operations. A class is created for each schema object.||Schema Object|
|A list to hold parameters that can be used across operations.||Parameter Object|
|An list to hold responses that can be used across operations.|
|Security scheme definitions that can be used across the specification.|
|A declaration of which security schemes are applied for the API as a whole.|
|A list of tags used by the specification with additional metadata. A <<RESTOperationTag>> class is created for each tag definition.|
|The name of the tag is used as name for the class.|
|A short description for the tag. The description is used as documentation for the operation.|
|Additional external documentation for this tag. The external documentation is set to the tagged values of the <<RESTOperationTag>>.|
|Additional external documentation.|
When importing an OpenAPI description, the importer will generate a package structure from the OpenAPI definitions. The
definitions section corresponds to the Types package, the
paths section corresponds to the Services package within the imported service.