By default, all described endpoint will be included as methods of the generated
DefaultAPI. However, this can become quite inconvenient quickly, as the number of methods in your OpenAPI specification increases.
In order to avoid that, we can group methods semantically using the
tags attribute from the OpenAPI specification. We can label each method with a tag, and they will be included in a protocol named after the tag.
For instance, consider the following description for a store service:
openapi: "3.0.0" info: title: My Store version: "1.0.0" paths: /customers: get: tags: - Customer operationId: getCustomers responses: '200': description: All customers in the store content: application/json: schema: $ref: '#/components/schemas/Customers' /products: get: tags: - Product operationId: getProducts responses: '200': description: All products in the store content: application/json: schema: $ref: '#/components/schemas/Products'
Since both methods have a tag, the
DefaultAPI protocol will not be generated. Instead, protocols named
ProductAPI will be created, containing the methods
As with the
DefaultAPI, they can be invoked as:
let customersRequest = API.customer.getCustomers() let productsRequest = API.product.getProducts()
Adding the same tag to multiple methods will make them belong under the same protocol. This is usually a good practice in order to segregate the responsibilities of the network client and restrict the visibility of certain operations to some parts of your code.