diff --git a/reference/OpenAPI.yaml b/reference/OpenAPI.yaml new file mode 100644 index 0000000..b138bbd --- /dev/null +++ b/reference/OpenAPI.yaml @@ -0,0 +1,186 @@ +openapi: 3.1.0 +x-stoplight: + id: gr7tm5a03g740 +info: + title: OpenAPI + version: '1.0' +servers: + - url: 'http://localhost:3000' +paths: + '/users/{userId}': + parameters: + - schema: + type: integer + name: userId + in: path + required: true + description: Id of an existing user. + get: + summary: Get User Info by User ID + tags: [] + responses: + '200': + description: User Found + content: + application/json: + schema: + $ref: '#/components/schemas/User' + examples: + Get User Alice Smith: + value: + id: 142 + firstName: Alice + lastName: Smith + email: alice.smith@gmail.com + dateOfBirth: '1997-10-31' + emailVerified: true + signUpDate: '2019-08-24' + '404': + description: User Not Found + operationId: get-users-userId + description: Retrieve the information of the user with the matching user ID. + patch: + summary: Update User Information + operationId: patch-users-userId + responses: + '200': + description: User Updated + content: + application/json: + schema: + $ref: '#/components/schemas/User' + examples: + Updated User Rebecca Baker: + value: + id: 13 + firstName: Rebecca + lastName: Baker + email: rebecca@gmail.com + dateOfBirth: '1985-10-02' + emailVerified: false + createDate: '2019-08-24' + '404': + description: User Not Found + '409': + description: Email Already Taken + description: Update the information of an existing user. + requestBody: + content: + application/json: + schema: + type: object + properties: + firstName: + type: string + lastName: + type: string + email: + type: string + description: 'If a new email is given, the user''s email verified property will be set to false.' + dateOfBirth: + type: string + examples: + Update First Name: + value: + firstName: Rebecca + Update Email: + value: + email: rebecca@gmail.com + Update Last Name & Date of Birth: + value: + lastName: Baker + dateOfBirth: '1985-10-02' + description: Patch user properties to update. + /user: + post: + summary: Create New User + operationId: post-user + responses: + '200': + description: User Created + content: + application/json: + schema: + $ref: '#/components/schemas/User' + examples: + New User Bob Fellow: + value: + id: 12 + firstName: Bob + lastName: Fellow + email: bob.fellow@gmail.com + dateOfBirth: '1996-08-24' + emailVerified: false + createDate: '2020-11-18' + '400': + description: Missing Required Information + '409': + description: Email Already Taken + requestBody: + content: + application/json: + schema: + type: object + properties: + firstName: + type: string + lastName: + type: string + email: + type: string + dateOfBirth: + type: string + format: date + required: + - firstName + - lastName + - email + - dateOfBirth + examples: + Create User Bob Fellow: + value: + firstName: Bob + lastName: Fellow + email: bob.fellow@gmail.com + dateOfBirth: '1996-08-24' + description: Post the necessary fields for the API to create a new user. + description: Create a new user. +components: + schemas: + Entity: + title: Entity + x-stoplight: + id: be41fcacb2693 + type: object + examples: + - id: 142 + firstName: Alice + lastName: Smith + email: alice.smith@gmail.com + dateOfBirth: '1997-10-31' + emailVerified: true + signUpDate: '2019-08-24' + properties: + id: + type: string + description: Unique identifier for the given user. + name: + type: string + required: + - id + - name + Weapon: + title: Weapon + x-stoplight: + id: 7zc6t20eh3pcc + type: object + properties: + id: + type: string + name: + type: string + description: + type: string + image: + type: string + format: uri