Merge pull request #1 in ~VLE2FE/dfop-api from api-definition to master
* commit '5e22afd27d34a45202d1b03dc51c0641ff07385d': splitted oas.yaml api definition created api definition created
This commit is contained in:
commit
e92a9d93c2
6
.idea/inspectionProfiles/Project_Default.xml
Normal file
6
.idea/inspectionProfiles/Project_Default.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="JSUnfilteredForInLoop" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
|
</profile>
|
||||||
|
</component>
|
53
oas.yml
53
oas.yml
@ -1,53 +0,0 @@
|
|||||||
openapi: 3.0.2
|
|
||||||
|
|
||||||
|
|
||||||
info:
|
|
||||||
title: Digital fingerprint of plastics - API
|
|
||||||
version: 1.0.0
|
|
||||||
description: Gives access to the project database
|
|
||||||
|
|
||||||
|
|
||||||
servers:
|
|
||||||
- url: http://localhost:3000
|
|
||||||
description: local server
|
|
||||||
- url: https://digital-fingerprint-of-plastics-api.apps.de1.bosch-iot-cloud.com/
|
|
||||||
description: server on the BIC
|
|
||||||
|
|
||||||
|
|
||||||
tags:
|
|
||||||
- name: /
|
|
||||||
|
|
||||||
|
|
||||||
paths:
|
|
||||||
/:
|
|
||||||
get:
|
|
||||||
summary: Root method
|
|
||||||
tags:
|
|
||||||
- /
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Server is working
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
properties:
|
|
||||||
message:
|
|
||||||
type: string
|
|
||||||
example: 'API server up and running!'
|
|
||||||
500:
|
|
||||||
$ref: '#/components/responses/500'
|
|
||||||
|
|
||||||
components:
|
|
||||||
responses:
|
|
||||||
500:
|
|
||||||
description: Internal server error
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
properties:
|
|
||||||
message:
|
|
||||||
type: string
|
|
||||||
example: 'Internal server error'
|
|
||||||
error:
|
|
||||||
type: boolean
|
|
||||||
example: true
|
|
69
oas/condition.yaml
Normal file
69
oas/condition.yaml
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/condition/{id}:
|
||||||
|
parameters:
|
||||||
|
- $ref: 'oas.yaml#/components/parameters/Id'
|
||||||
|
get:
|
||||||
|
summary: TODO condition by id
|
||||||
|
description: 'levels: read, write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /condition
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: condition details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Condition'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
put:
|
||||||
|
summary: TODO add/change condition
|
||||||
|
description: 'levels: write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /condition
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Condition'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: condition details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Condition'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
delete:
|
||||||
|
summary: TODO delete condition
|
||||||
|
description: 'levels: write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /condition
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
63
oas/material.yaml
Normal file
63
oas/material.yaml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/material/{id}:
|
||||||
|
parameters:
|
||||||
|
- $ref: 'oas.yaml#/components/parameters/Id'
|
||||||
|
get:
|
||||||
|
summary: TODO get material details
|
||||||
|
description: 'levels: read, write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /material
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: created material
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Material'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
put:
|
||||||
|
summary: TODO add/change material
|
||||||
|
description: 'levels: write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /material
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Material'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: material details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Material'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
delete:
|
||||||
|
summary: TODO delete material
|
||||||
|
description: 'levels: write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /material
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
69
oas/measurement.yaml
Normal file
69
oas/measurement.yaml
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/measurement/{id}:
|
||||||
|
parameters:
|
||||||
|
- $ref: 'oas.yaml#/components/parameters/Id'
|
||||||
|
get:
|
||||||
|
summary: TODO measurement values by id
|
||||||
|
description: 'levels: read, write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /measurement
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: measurement details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Measurement'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
put:
|
||||||
|
summary: TODO add/change measurement
|
||||||
|
description: 'levels: write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /measurement
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Measurement'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: measurement details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Measurement'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
delete:
|
||||||
|
summary: TODO delete measurement
|
||||||
|
description: 'levels: write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /measurement
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
68
oas/model.yaml
Normal file
68
oas/model.yaml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
/model/{name}:
|
||||||
|
parameters:
|
||||||
|
- $ref: 'oas.yaml#/components/parameters/Name'
|
||||||
|
get:
|
||||||
|
summary: TODO get model data by name
|
||||||
|
description: 'levels: dev, admin'
|
||||||
|
tags:
|
||||||
|
- /model
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: binary model data
|
||||||
|
content:
|
||||||
|
application/octet-stream:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
put:
|
||||||
|
summary: TODO add/replace model data by name
|
||||||
|
description: 'levels: dev, admin'
|
||||||
|
tags:
|
||||||
|
- /model
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
description: binary model data
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
delete:
|
||||||
|
summary: TODO delete model data
|
||||||
|
description: 'levels: dev, admin'
|
||||||
|
tags:
|
||||||
|
- /model
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
74
oas/oas.yaml
Normal file
74
oas/oas.yaml
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
openapi: 3.0.2
|
||||||
|
|
||||||
|
|
||||||
|
info:
|
||||||
|
title: Digital fingerprint of plastics - API
|
||||||
|
version: 1.0.0
|
||||||
|
description: |
|
||||||
|
This API gives access to the project database.<br>
|
||||||
|
Access is restricted. Authentication can be obtained with HTTP Basic Auth using username and password. Data access methods can also be accessed using an API key at the URL ending like ?key=xxx<br>
|
||||||
|
There are a number of different user levels: <br>
|
||||||
|
<ul>
|
||||||
|
<li>read: read access to the samples database</li>
|
||||||
|
<li>write: write access to the samples database, users can change only the values they created</li>
|
||||||
|
<li>maintain: functions like changing templates, validating data, changing values of others</li>
|
||||||
|
<li>dev: handling machine learning models</li>
|
||||||
|
<li>admin: user administration</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
servers:
|
||||||
|
- url: http://localhost:3000
|
||||||
|
description: local server
|
||||||
|
- url: https://digital-fingerprint-of-plastics-api.apps.de1.bosch-iot-cloud.com/
|
||||||
|
description: server on the BIC
|
||||||
|
|
||||||
|
|
||||||
|
security:
|
||||||
|
- ApiKey: []
|
||||||
|
- BasicAuth: []
|
||||||
|
|
||||||
|
|
||||||
|
tags:
|
||||||
|
- name: /
|
||||||
|
- name: /sample
|
||||||
|
- name: /material
|
||||||
|
- name: /condition
|
||||||
|
- name: /measurement
|
||||||
|
- name: /templates
|
||||||
|
- name: /model
|
||||||
|
- name: /user
|
||||||
|
|
||||||
|
|
||||||
|
paths:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'others.yaml'
|
||||||
|
- $ref: 'sample.yaml'
|
||||||
|
- $ref: 'material.yaml'
|
||||||
|
- $ref: 'condition.yaml'
|
||||||
|
- $ref: 'measurement.yaml'
|
||||||
|
- $ref: 'template.yaml'
|
||||||
|
- $ref: 'model.yaml'
|
||||||
|
- $ref: 'user.yaml'
|
||||||
|
|
||||||
|
|
||||||
|
components:
|
||||||
|
parameters:
|
||||||
|
$ref: 'parameters.yaml'
|
||||||
|
|
||||||
|
schemas:
|
||||||
|
$ref: 'schemas.yaml'
|
||||||
|
|
||||||
|
responses:
|
||||||
|
$ref: 'responses.yaml'
|
||||||
|
|
||||||
|
|
||||||
|
securitySchemes:
|
||||||
|
BasicAuth:
|
||||||
|
type: http
|
||||||
|
scheme: basic
|
||||||
|
ApiKey:
|
||||||
|
type: apiKey
|
||||||
|
in: query
|
||||||
|
name: key
|
18
oas/others.yaml
Normal file
18
oas/others.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/:
|
||||||
|
get:
|
||||||
|
summary: Root method
|
||||||
|
tags:
|
||||||
|
- /
|
||||||
|
security: []
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: Server is working
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
|
example: 'API server up and running!'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
12
oas/parameters.yaml
Normal file
12
oas/parameters.yaml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Id:
|
||||||
|
name: id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
Name:
|
||||||
|
name: name
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
54
oas/responses.yaml
Normal file
54
oas/responses.yaml
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
400:
|
||||||
|
description: Bad request
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
example: 'Bad request'
|
||||||
|
401:
|
||||||
|
description: Unauthorized
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
example: 'Unauthorized'
|
||||||
|
403:
|
||||||
|
description: Forbidden
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
example: 'Forbidden'
|
||||||
|
404:
|
||||||
|
description: Not found
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
example: 'Not found'
|
||||||
|
500:
|
||||||
|
description: Internal server error
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
example: 'Internal server error'
|
||||||
|
Ok:
|
||||||
|
description: request executed successfully
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
example: OK
|
108
oas/sample.yaml
Normal file
108
oas/sample.yaml
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
/samples:
|
||||||
|
get:
|
||||||
|
summary: TODO all samples in overview
|
||||||
|
description: 'levels: read, write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /sample
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: samples overview
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Samples'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
/sample/{id}:
|
||||||
|
parameters:
|
||||||
|
- $ref: 'oas.yaml#/components/parameters/Id'
|
||||||
|
get:
|
||||||
|
summary: TODO sample details
|
||||||
|
description: 'levels: read, write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /sample
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: samples details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/SampleDetail'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
put:
|
||||||
|
summary: TODO add/change sample
|
||||||
|
description: 'levels: write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /sample
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Sample'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: samples details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/SampleDetail'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
delete:
|
||||||
|
summary: TODO delete sample
|
||||||
|
description: 'levels: write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /sample
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
/sample/notes/fields:
|
||||||
|
get:
|
||||||
|
summary: TODO list all existing field names for custom notes fields
|
||||||
|
description: 'levels: write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /sample
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: field names and quantity of usage
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
qty:
|
||||||
|
type: number
|
||||||
|
example: 20
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
164
oas/schemas.yaml
Normal file
164
oas/schemas.yaml
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
Id:
|
||||||
|
type: string
|
||||||
|
_Id:
|
||||||
|
properties:
|
||||||
|
_id:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
readOnly: true
|
||||||
|
Color:
|
||||||
|
properties:
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
SampleProperties:
|
||||||
|
properties:
|
||||||
|
sample_number:
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
batch:
|
||||||
|
type: string
|
||||||
|
validated:
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
Samples:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/_Id'
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Color'
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/SampleProperties'
|
||||||
|
properties:
|
||||||
|
material_id:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
note_id:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
user_id:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
Sample:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/_Id'
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Color'
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/SampleProperties'
|
||||||
|
properties:
|
||||||
|
material:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Material'
|
||||||
|
notes:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
comments:
|
||||||
|
type: string
|
||||||
|
sample_references:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
SampleDetail:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/_Id'
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Color'
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/SampleProperties'
|
||||||
|
properties:
|
||||||
|
material:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Material'
|
||||||
|
notes:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
comments:
|
||||||
|
type: string
|
||||||
|
sample_references:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
conditions:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Condition'
|
||||||
|
|
||||||
|
Material:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/_Id'
|
||||||
|
properties:
|
||||||
|
material_numbers:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Color'
|
||||||
|
properties:
|
||||||
|
number:
|
||||||
|
type: number
|
||||||
|
material_group:
|
||||||
|
type: string
|
||||||
|
supplier:
|
||||||
|
type: string
|
||||||
|
material_name:
|
||||||
|
type: string
|
||||||
|
mineral:
|
||||||
|
type: number
|
||||||
|
glass_fiber:
|
||||||
|
type: number
|
||||||
|
carbon_fiber:
|
||||||
|
type: number
|
||||||
|
|
||||||
|
Condition:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/_Id'
|
||||||
|
properties:
|
||||||
|
sample_id:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
parameters:
|
||||||
|
type: object
|
||||||
|
treatment_template:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
|
||||||
|
Measurement:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/_Id'
|
||||||
|
properties:
|
||||||
|
condition_id:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
values:
|
||||||
|
type: object
|
||||||
|
measurement_template:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Id'
|
||||||
|
|
||||||
|
Template:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/_Id'
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
parameters:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
range:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
Email:
|
||||||
|
required:
|
||||||
|
- email
|
||||||
|
properties:
|
||||||
|
email:
|
||||||
|
type: string
|
||||||
|
example: john.doe@bosch.com
|
||||||
|
User:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/_Id'
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Email'
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
example: johndoe
|
||||||
|
levels:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
example: read
|
||||||
|
location:
|
||||||
|
type: string
|
||||||
|
example: Rng
|
||||||
|
device_name:
|
||||||
|
type: string
|
||||||
|
example: Alpha II
|
242
oas/template.yaml
Normal file
242
oas/template.yaml
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
/template/treatments:
|
||||||
|
get:
|
||||||
|
summary: TODO all available treatment methods
|
||||||
|
description: 'levels: read, write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /templates
|
||||||
|
security:
|
||||||
|
- BasicAuth: []
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: list of treatments
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Template'
|
||||||
|
example:
|
||||||
|
name: heat aging
|
||||||
|
parameters:
|
||||||
|
- name: method
|
||||||
|
range:
|
||||||
|
- copper
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
/templates/treatment/{name}:
|
||||||
|
parameters:
|
||||||
|
- $ref: 'oas.yaml#/components/parameters/Name'
|
||||||
|
get:
|
||||||
|
summary: TODO treatment method details
|
||||||
|
description: 'levels: read, write, maintain, admin'
|
||||||
|
tags:
|
||||||
|
- /templates
|
||||||
|
security:
|
||||||
|
- BasicAuth: []
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: treatment details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Template'
|
||||||
|
example:
|
||||||
|
name: heat aging
|
||||||
|
parameters:
|
||||||
|
- name: method
|
||||||
|
range:
|
||||||
|
- copper
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
put:
|
||||||
|
summary: TODO add/change treatment method
|
||||||
|
description: 'levels: maintain, admin'
|
||||||
|
tags:
|
||||||
|
- /templates
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Template'
|
||||||
|
example:
|
||||||
|
name: heat aging
|
||||||
|
parameters:
|
||||||
|
- name: method
|
||||||
|
range:
|
||||||
|
- copper
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: treatment details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Template'
|
||||||
|
example:
|
||||||
|
name: heat aging
|
||||||
|
parameters:
|
||||||
|
- name: method
|
||||||
|
range:
|
||||||
|
- copper
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
delete:
|
||||||
|
summary: TODO delete treatment method
|
||||||
|
description: 'levels: maintain, admin'
|
||||||
|
tags:
|
||||||
|
- /templates
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
/template/measurements:
|
||||||
|
get:
|
||||||
|
summary: TODO all available measurement methods
|
||||||
|
description: 'levels: read, write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /templates
|
||||||
|
security:
|
||||||
|
- BasicAuth: []
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: list of measurement methods
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Template'
|
||||||
|
example:
|
||||||
|
name: humidity
|
||||||
|
parameters:
|
||||||
|
- name: kf
|
||||||
|
range:
|
||||||
|
min: 0
|
||||||
|
max: 2
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
/templates/measurement/{name}:
|
||||||
|
parameters:
|
||||||
|
- $ref: 'oas.yaml#/components/parameters/Name'
|
||||||
|
get:
|
||||||
|
summary: TODO measurement method details
|
||||||
|
description: 'levels: read, write, maintain, admin'
|
||||||
|
tags:
|
||||||
|
- /templates
|
||||||
|
security:
|
||||||
|
- BasicAuth: []
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: measurement details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Template'
|
||||||
|
example:
|
||||||
|
name: humidity
|
||||||
|
parameters:
|
||||||
|
- name: kf
|
||||||
|
range:
|
||||||
|
min: 0
|
||||||
|
max: 2
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
put:
|
||||||
|
summary: TODO add/change measurement method
|
||||||
|
description: 'levels: maintain, admin'
|
||||||
|
tags:
|
||||||
|
- /templates
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Template'
|
||||||
|
example:
|
||||||
|
name: humidity
|
||||||
|
parameters:
|
||||||
|
- name: kf
|
||||||
|
range:
|
||||||
|
min: 0
|
||||||
|
max: 2
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: measurement details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: 'oas.yaml#/components/schemas/Template'
|
||||||
|
example:
|
||||||
|
name: humidity
|
||||||
|
parameters:
|
||||||
|
- name: kf
|
||||||
|
range:
|
||||||
|
min: 0
|
||||||
|
max: 2
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
delete:
|
||||||
|
summary: TODO delete measurement method
|
||||||
|
description: 'levels: maintain, admin'
|
||||||
|
tags:
|
||||||
|
- /templates
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
170
oas/user.yaml
Normal file
170
oas/user.yaml
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
/users:
|
||||||
|
get:
|
||||||
|
summary: TODO lists all users
|
||||||
|
description: 'levels: admin'
|
||||||
|
tags:
|
||||||
|
- /user
|
||||||
|
security:
|
||||||
|
- BasicAuth: []
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: user API key
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/User'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
/user/{name}:
|
||||||
|
parameters:
|
||||||
|
- $ref: 'oas.yaml#/components/parameters/Name'
|
||||||
|
get:
|
||||||
|
summary: TODO list user details
|
||||||
|
description: 'levels: read, write, maintain, dev get their own information without a name property specified, level: admin can get any user using the name parameter'
|
||||||
|
tags:
|
||||||
|
- /user
|
||||||
|
security:
|
||||||
|
- BasicAuth: []
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: user details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/User'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
put:
|
||||||
|
summary: TODO change user details
|
||||||
|
description: 'levels: read, write, maintain, dev can change their own information (except level) without a name property specified, level: admin can change any user using the name parameter'
|
||||||
|
tags:
|
||||||
|
- /user
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/User'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: user details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/User'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
delete:
|
||||||
|
summary: TODO delete user
|
||||||
|
description: 'levels: read, write, maintain, dev can delete their own account, level: admin can delete any user using the name parameter'
|
||||||
|
tags:
|
||||||
|
- /user
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
404:
|
||||||
|
$ref: 'oas.yaml#/components/responses/404'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
/user/key:
|
||||||
|
get:
|
||||||
|
summary: TODO get API key for the user
|
||||||
|
description: 'levels: read, write, maintain, dev, admin'
|
||||||
|
tags:
|
||||||
|
- /user
|
||||||
|
security:
|
||||||
|
- BasicAuth: []
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: user details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/User'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
/user/new:
|
||||||
|
post:
|
||||||
|
summary: TODO add new user
|
||||||
|
description: 'levels: admin'
|
||||||
|
tags:
|
||||||
|
- /user
|
||||||
|
security:
|
||||||
|
- BasicAuth: []
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/User'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: user details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/User'
|
||||||
|
400:
|
||||||
|
$ref: 'oas.yaml#/components/responses/400'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
403:
|
||||||
|
$ref: 'oas.yaml#/components/responses/403'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
||||||
|
/user/passreset:
|
||||||
|
post:
|
||||||
|
summary: TODO reset password and send mail to restore
|
||||||
|
tags:
|
||||||
|
- /user
|
||||||
|
security: []
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
description: mail saved in user profile to provide authentication
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'oas.yaml#/components/schemas/Email'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: 'oas.yaml#/components/responses/Ok'
|
||||||
|
401:
|
||||||
|
$ref: 'oas.yaml#/components/responses/401'
|
||||||
|
500:
|
||||||
|
$ref: 'oas.yaml#/components/responses/500'
|
64
package-lock.json
generated
64
package-lock.json
generated
@ -4,6 +4,16 @@
|
|||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@apidevtools/json-schema-ref-parser": {
|
||||||
|
"version": "8.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz",
|
||||||
|
"integrity": "sha512-n4YBtwQhdpLto1BaUCyAeflizmIbaloGShsPyRtFf5qdFJxfssj+GgLavczgKJFa3Bq+3St2CKcpRJdjtB4EBw==",
|
||||||
|
"requires": {
|
||||||
|
"@jsdevtools/ono": "^7.1.0",
|
||||||
|
"call-me-maybe": "^1.0.1",
|
||||||
|
"js-yaml": "^3.13.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@babel/code-frame": {
|
"@babel/code-frame": {
|
||||||
"version": "7.8.3",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
|
||||||
@ -22,6 +32,11 @@
|
|||||||
"js-tokens": "^4.0.0"
|
"js-tokens": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@jsdevtools/ono": {
|
||||||
|
"version": "7.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.2.tgz",
|
||||||
|
"integrity": "sha512-qS/a24RA5FEoiJS9wiv6Pwg2c/kiUo3IVUQcfeM9JvsR6pM8Yx+yl/6xWYLckZCT5jpLNhslgjiA8p/XcGyMRQ=="
|
||||||
|
},
|
||||||
"@sindresorhus/is": {
|
"@sindresorhus/is": {
|
||||||
"version": "0.14.0",
|
"version": "0.14.0",
|
||||||
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
|
||||||
@ -338,6 +353,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"call-me-maybe": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms="
|
||||||
|
},
|
||||||
"camelcase": {
|
"camelcase": {
|
||||||
"version": "5.3.1",
|
"version": "5.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||||
@ -1118,6 +1138,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
|
||||||
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
|
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
|
||||||
},
|
},
|
||||||
|
"json-schema": {
|
||||||
|
"version": "0.2.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.5.tgz",
|
||||||
|
"integrity": "sha512-gWJOWYFrhQ8j7pVm0EM8Slr+EPVq1Phf6lvzvD/WCeqkrx/f2xBI0xOsRRS9xCn3I4vKtP519dvs3TP09r24wQ=="
|
||||||
|
},
|
||||||
"kareem": {
|
"kareem": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz",
|
||||||
@ -1242,18 +1267,11 @@
|
|||||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
||||||
},
|
},
|
||||||
"mkdirp": {
|
"mkdirp": {
|
||||||
"version": "0.5.1",
|
"version": "0.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
||||||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimist": "0.0.8"
|
"minimist": "^1.2.5"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"minimist": {
|
|
||||||
"version": "0.0.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
|
||||||
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mocha": {
|
"mocha": {
|
||||||
@ -1333,6 +1351,21 @@
|
|||||||
"path-is-absolute": "^1.0.0"
|
"path-is-absolute": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"minimist": {
|
||||||
|
"version": "0.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
||||||
|
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"mkdirp": {
|
||||||
|
"version": "0.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||||
|
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"minimist": "0.0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
||||||
@ -2425,15 +2458,6 @@
|
|||||||
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
|
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"yamljs": {
|
|
||||||
"version": "0.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz",
|
|
||||||
"integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==",
|
|
||||||
"requires": {
|
|
||||||
"argparse": "^1.0.7",
|
|
||||||
"glob": "^7.0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"yargs": {
|
"yargs": {
|
||||||
"version": "13.3.0",
|
"version": "13.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
|
||||||
|
@ -6,22 +6,23 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "mocha dist/**/**.spec.js",
|
"test": "mocha dist/**/**.spec.js",
|
||||||
"start": "tsc && node dist/index.js",
|
"start": "tsc && node dist/index.js",
|
||||||
"dev": "nodemon -e ts --exec \"npm run start\""
|
"dev": "nodemon -e ts,yaml --exec \"npm run start\""
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@apidevtools/json-schema-ref-parser": "^8.0.0",
|
||||||
"@types/mocha": "^5.2.7",
|
"@types/mocha": "^5.2.7",
|
||||||
"@types/node": "^13.1.6",
|
"@types/node": "^13.1.6",
|
||||||
"cfenv": "^1.2.2",
|
"cfenv": "^1.2.2",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
|
"json-schema": "^0.2.5",
|
||||||
"mongoose": "^5.8.7",
|
"mongoose": "^5.8.7",
|
||||||
"nodemon": "^2.0.3",
|
"nodemon": "^2.0.3",
|
||||||
"swagger-ui-express": "^4.1.2",
|
"swagger-ui-express": "^4.1.2",
|
||||||
"tslint": "^5.20.1",
|
"tslint": "^5.20.1",
|
||||||
"typescript": "^3.7.4",
|
"typescript": "^3.7.4"
|
||||||
"yamljs": "^0.3.0"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "^7.0.0",
|
"mocha": "^7.0.0",
|
||||||
|
19
src/index.ts
19
src/index.ts
@ -2,7 +2,7 @@ import cfenv from 'cfenv';
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
import swagger from 'swagger-ui-express';
|
import swagger from 'swagger-ui-express';
|
||||||
import yaml from 'yamljs';
|
import jsonRefParser, {JSONSchema} from '@apidevtools/json-schema-ref-parser';
|
||||||
|
|
||||||
|
|
||||||
// tell if server is running in debug or production environment
|
// tell if server is running in debug or production environment
|
||||||
@ -32,6 +32,7 @@ db.once('open', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// create Express app
|
// create Express app
|
||||||
const app = express();
|
const app = express();
|
||||||
app.disable('x-powered-by');
|
app.disable('x-powered-by');
|
||||||
@ -43,14 +44,14 @@ const port = process.env.PORT || 3000;
|
|||||||
app.use('/', require('./routes/root'));
|
app.use('/', require('./routes/root'));
|
||||||
|
|
||||||
// Swagger UI
|
// Swagger UI
|
||||||
app.use('/api', swagger.serve, swagger.setup(
|
let oasDoc: JSONSchema = {};
|
||||||
yaml.load('./oas.yml'),
|
jsonRefParser.bundle('oas/oas.yaml', (err, doc) => {
|
||||||
{
|
if(err) throw err;
|
||||||
defaultModelsExpandDepth: -1,
|
oasDoc = doc;
|
||||||
customCss: '.swagger-ui .topbar { display: none }'
|
oasDoc.paths = oasDoc.paths.allOf.reduce((s, e) => Object.assign(s, e));
|
||||||
}
|
swagger.setup(oasDoc, {defaultModelsExpandDepth: -1, customCss: '.swagger-ui .topbar { display: none }'});
|
||||||
)
|
});
|
||||||
);
|
app.use('/api', swagger.serve, swagger.setup(oasDoc, {defaultModelsExpandDepth: -1, customCss: '.swagger-ui .topbar { display: none }'}));
|
||||||
|
|
||||||
// hook up server to port
|
// hook up server to port
|
||||||
app.listen(port, () => {
|
app.listen(port, () => {
|
||||||
|
Reference in New Issue
Block a user