UNPKG

draig-car

Version:

Database REST API interactive generator CLI and REPL OpenAPI3 based JS generator with interactive ORM/ODM REPL

823 lines (822 loc) 22.4 kB
openapi: 3.0.1 info: description: >- This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. license: name: Apache-2.0 url: 'https://www.apache.org/licenses/LICENSE-2.0.html' title: OpenAPI Petstore version: 1.0.0 servers: - url: 'http://localhost:3002' tags: - description: Everything about your Pets name: pet - description: Access to Petstore orders name: store - description: Operations about user name: user paths: /pet: post: operationId: addPet requestBody: content: application/json: schema: $ref: '#/components/schemas/Pet' application/xml: schema: $ref: '#/components/schemas/Pet' description: Pet object that needs to be added to the store required: true responses: '405': content: {} description: Invalid input security: - petstore_auth: - 'write:pets' - 'read:pets' summary: Add a new pet to the store tags: - pet x-codegen-request-body-name: body x-eov-operation-handler: controllers/PetController put: operationId: updatePet requestBody: content: application/json: schema: $ref: '#/components/schemas/Pet' application/xml: schema: $ref: '#/components/schemas/Pet' description: Pet object that needs to be added to the store required: true responses: '400': content: {} description: Invalid ID supplied '404': content: {} description: Pet not found '405': content: {} description: Validation exception security: - petstore_auth: - 'write:pets' - 'read:pets' summary: Update an existing pet tags: - pet x-codegen-request-body-name: body x-eov-operation-handler: controllers/PetController /pet/findByStatus: get: description: Multiple status values can be provided with comma separated strings operationId: findPetsByStatus parameters: - description: Status values that need to be considered for filter explode: false in: query name: status required: true schema: items: default: available enum: - available - pending - sold type: string type: array style: form responses: '200': content: application/xml: schema: items: $ref: '#/components/schemas/Pet' type: array application/json: schema: items: $ref: '#/components/schemas/Pet' type: array description: successful operation '400': content: {} description: Invalid status value security: - petstore_auth: - 'read:pets' summary: Finds Pets by status tags: - pet x-eov-operation-handler: controllers/PetController /pet/findByTags: get: deprecated: true description: >- Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. operationId: findPetsByTags parameters: - description: Tags to filter by explode: false in: query name: tags required: true schema: items: type: string type: array style: form responses: '200': content: application/xml: schema: items: $ref: '#/components/schemas/Pet' type: array application/json: schema: items: $ref: '#/components/schemas/Pet' type: array description: successful operation '400': content: {} description: Invalid tag value security: - petstore_auth: - 'write:pets' - 'read:pets' summary: Finds Pets by tags tags: - pet x-eov-operation-handler: controllers/PetController x-draig-query: 'Pet.query().withGraphJoined(''tags'').whereIn(''tags.name'', tags)' '/pet/{petId}': delete: operationId: deletePet parameters: - in: header name: api_key schema: type: string - description: Pet id to delete in: path name: petId required: true schema: format: int64 type: integer responses: '400': content: {} description: Invalid pet value security: - petstore_auth: - 'write:pets' - 'read:pets' summary: Deletes a pet tags: - pet x-eov-operation-handler: controllers/PetController get: description: Returns a single pet operationId: getPetById parameters: - description: ID of pet to return in: path name: petId required: true schema: format: int64 type: integer responses: '200': content: application/xml: schema: $ref: '#/components/schemas/Pet' application/json: schema: $ref: '#/components/schemas/Pet' description: successful operation '400': content: {} description: Invalid ID supplied '404': content: {} description: Pet not found security: - api_key: [] summary: Find pet by ID tags: - pet x-eov-operation-handler: controllers/PetController post: operationId: updatePetWithForm parameters: - description: ID of pet that needs to be updated in: path name: petId required: true schema: format: int64 type: integer requestBody: content: application/x-www-form-urlencoded: schema: properties: name: description: Updated name of the pet type: string status: description: Updated status of the pet type: string responses: '405': content: {} description: Invalid input security: - petstore_auth: - 'write:pets' - 'read:pets' summary: Updates a pet in the store with form data tags: - pet x-eov-operation-handler: controllers/PetController x-draig-put: true '/pet/{petId}/uploadImage': post: operationId: uploadFile parameters: - description: ID of pet to update in: path name: petId required: true schema: format: int64 type: integer requestBody: content: multipart/form-data: schema: properties: additionalMetadata: description: Additional data to pass to server type: string file: description: file to upload format: binary type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApiResponse' description: successful operation security: - petstore_auth: - 'write:pets' - 'read:pets' summary: uploads an image tags: - pet x-eov-operation-handler: controllers/PetController x-draig-di-service: upload.image /store/inventory: get: description: Returns a map of status codes to quantities operationId: getInventory responses: '200': content: application/json: schema: additionalProperties: format: int32 type: integer type: object application/xml: schema: additionalProperties: format: int32 type: integer type: object description: successful operation security: - api_key: [] summary: Returns pet inventories by status tags: - store x-eov-operation-handler: controllers/StoreController x-draig-query: | Order.query().select('status').count().groupBy('status') x-draig-transform: | rows.reduce((i, e) => ({ ...i, [e.status]: Number(e.count) }), {}) /store/order: post: operationId: placeOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/Order' description: order placed for purchasing the pet required: true responses: '200': content: application/xml: schema: $ref: '#/components/schemas/Order' application/json: schema: $ref: '#/components/schemas/Order' description: successful operation '400': content: {} description: Invalid Order summary: Place an order for a pet tags: - store x-codegen-request-body-name: body x-eov-operation-handler: controllers/StoreController '/store/order/{orderId}': delete: description: >- For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors operationId: deleteOrder parameters: - description: ID of the order that needs to be deleted in: path name: orderId required: true schema: type: string responses: '400': content: {} description: Invalid ID supplied '404': content: {} description: Order not found summary: Delete purchase order by ID tags: - store x-eov-operation-handler: controllers/StoreController x-draig-model: Order get: description: >- For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions operationId: getOrderById parameters: - description: ID of pet that needs to be fetched in: path name: orderId required: true schema: format: int64 maximum: 5 minimum: 1 type: integer responses: '200': content: application/xml: schema: $ref: '#/components/schemas/Order' application/json: schema: $ref: '#/components/schemas/Order' description: successful operation '400': content: {} description: Invalid ID supplied '404': content: {} description: Order not found summary: Find purchase order by ID tags: - store x-eov-operation-handler: controllers/StoreController /user: post: description: This can only be done by the logged in user. operationId: createUser requestBody: content: application/json: schema: $ref: '#/components/schemas/User' description: Created user object required: true responses: default: content: {} description: successful operation summary: Create user tags: - user x-codegen-request-body-name: body x-eov-operation-handler: controllers/UserController /user/createWithArray: post: operationId: createUsersWithArrayInput requestBody: content: application/json: schema: items: $ref: '#/components/schemas/User' type: array description: List of user object required: true responses: default: content: {} description: successful operation summary: Creates list of users with given input array tags: - user x-codegen-request-body-name: body x-eov-operation-handler: controllers/UserController /user/createWithList: post: operationId: createUsersWithListInput requestBody: content: application/json: schema: items: $ref: '#/components/schemas/User' type: array description: List of user object required: true responses: default: content: {} description: successful operation summary: Creates list of users with given input array tags: - user x-codegen-request-body-name: body x-eov-operation-handler: controllers/UserController /user/login: get: operationId: loginUser parameters: - description: The user name for login in: query name: username required: true schema: type: string - description: The password for login in clear text in: query name: password required: true schema: type: string responses: '200': content: application/xml: schema: type: string application/json: schema: type: string description: successful operation headers: X-Rate-Limit: description: calls per hour allowed by the user schema: format: int32 type: integer X-Expires-After: description: date in UTC when toekn expires schema: format: date-time type: string '400': content: {} description: Invalid username/password supplied summary: Logs user into the system tags: - user x-eov-operation-handler: controllers/UserController x-draig-model: User /user/logout: get: operationId: logoutUser responses: default: content: {} description: successful operation summary: Logs out current logged in user session tags: - user x-eov-operation-handler: controllers/UserController x-draig-di-service: logout '/user/{username}': delete: description: This can only be done by the logged in user. operationId: deleteUser parameters: - description: The name that needs to be deleted in: path name: username required: true schema: type: string responses: '400': content: {} description: Invalid username supplied '404': content: {} description: User not found summary: Delete user tags: - user x-eov-operation-handler: controllers/UserController get: operationId: getUserByName parameters: - description: The name that needs to be fetched. Use user1 for testing. in: path name: username required: true schema: type: string responses: '200': content: application/xml: schema: $ref: '#/components/schemas/User' application/json: schema: $ref: '#/components/schemas/User' description: successful operation '400': content: {} description: Invalid username supplied '404': content: {} description: User not found summary: Get user by user name tags: - user x-eov-operation-handler: controllers/UserController put: description: This can only be done by the logged in user. operationId: updateUser parameters: - description: username of the to be updated in: path name: username required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/User' description: Updated user object required: true responses: '400': content: {} description: Invalid user supplied '404': content: {} description: User not found summary: Updated user tags: - user x-codegen-request-body-name: body x-eov-operation-handler: controllers/UserController components: schemas: Order: x-draig-tableName: orders description: An order for a pets from the pet store example: pet_id: 6 quantity: 1 id: 0 shipDate: 2000-01-23T04:56:07.000Z complete: false status: placed properties: id: format: int64 type: integer pet: $ref: '#/components/schemas/Pet' quantity: format: int32 type: integer shipDate: format: date-time type: string status: description: Order Status enum: - placed - approved - delivered type: string complete: default: false type: boolean title: Pet Order type: object xml: name: Order Category: x-draig-tableName: categories description: A category for a pet example: name: name id: 6 properties: id: format: int64 type: integer name: type: string title: Pet category type: object xml: name: Category User: x-draig-tableName: users description: A User who is purchasing from the pet store example: firstName: firstName lastName: lastName password: password userStatus: 6 phone: phone id: 0 email: email username: username properties: id: format: int64 type: integer username: type: string x-draig-sch-unique: true firstName: type: string lastName: type: string email: type: string password: type: string phone: type: string userStatus: description: User Status format: int32 type: integer title: a User type: object xml: name: User Tag: x-draig-tableName: tags description: A tag for a pet example: name: name id: 1 properties: id: format: int64 type: integer name: type: string title: Pet Tag type: object xml: name: Tag Pet: x-draig-tableName: pets description: A pet for sale in the pet store example: photoUrls: - photoUrls - photoUrls name: doggie id: 0 category: name: name id: 6 tags: - name: name id: 1 - name: name id: 1 status: available properties: id: format: int64 type: integer category: $ref: '#/components/schemas/Category' name: example: doggie type: string photoUrls: items: type: string type: array xml: name: photoUrl wrapped: true tags: items: $ref: '#/components/schemas/Tag' type: array xml: name: tag wrapped: true status: description: pet status in the store enum: - available - pending - sold type: string required: - name - photoUrls title: a Pet type: object xml: name: Pet ApiResponse: description: Describes the result of uploading an image resource example: code: 0 type: type message: message properties: code: format: int32 type: integer type: type: string message: type: string title: An uploaded response type: object securitySchemes: petstore_auth: type: oauth2 x-draig-auth-usermodel: User flows: authorizationCode: #NodeJS Oauth server #authorizationUrl: 'http://localhost:3000/oauth/authenticate' #tokenUrl: 'http://localhost:3000/oauth/access_token' #SpringBoot Oauth server: supports implicit flow #authorizationUrl: 'http://localhost:8080/api/oauth/dialog' #Own oauth server: supports only authorization code grant authorizationUrl: '/oauth/authorize' tokenUrl: '/oauth/token' #TBD #oauth2orize: supports authorization code grant adding cors module #authorizationUrl: 'http://localhost:3000/dialog/authorize' #tokenUrl: 'http://localhost:3000/oauth/token' #Oauth-example: support authorization code grant #authorizationUrl: 'http://localhost:3030/oauth' #tokenUrl: 'http://localhost:3030/oauth/token' scopes: 'write:pets': modify pets in your account 'read:pets': read your pets api_key: in: header name: api_key type: apiKey x-draig-auth-handler: AuthHandler