Closed maccostar closed 4 years ago
What kind of change does this PR introduce? (check at least one)
Issue Number: N/A
<v-select></v-select>
115行目~122行目:computedにarrOfResponseの追加 this.flatPathsObj.opeObj.responsesをstatusCodeとResponseObjの組み合わせのオブジェクトに整形。
this.flatPathsObj.opeObj.responses
# 変更前 this.flatPathsObj.opeObj.responses "responses": { "204": { "description": "OK" }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "properties": { "code": { "type": "string" } } } } } } }
# 変更後 arrOfResponse [ { statusCode: "204", responseObj:{ "description": "OK" } }, { statusCode: "401", responseObj: { "description": "Unauthorized", "content": { "application/json": { "schema": { "properties": { "code": { "type": "string" } } } } } } } ]
78行目~92行目:<table></table>内で、statusCodeとresponseObjを一覧化 OpenAPISpece - Response Objectの仕様に準じて、一覧表示させる。
<table></table>
<api-response :response-obj="response.responseObj"/>
# Response Objectの構成 Response Object ├ desctiption ├ header ├ links └ content └ medietype(string) : { Media Type Object }
{ "description": "A complex object array response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VeryComplexType" } } } } }
- selectedMediaType - 43行目~52行目`selectedSchemaObj`は`<v-select></v-select>`内で選択を変更した際に、13行目に選択したMediaTypeのMediaTypeObject.schemaを渡すために作成。 #### client/components/SchemaObj.vue - [SchemaObject](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schema-object)を表示させるためのvue。 - SchemaObject内のpropertiesとitemsは、更にその下にSchemaObjectを持つため、componentを再帰的に参照する。 - sample1~4のパターンでデータを持つため、`objectsToShow`でpropertiesを取得するか、items.propertiesを取得するかを判断している。
{ "required": [ "code", "message", ], "properties": { "code": { "type": "string", "example": "" }, "message": { "type": "string" } } }
{ "type": "array", "items": { "required": [ "id", "name", "role" ], "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "role": { "type": "string" } } }
{ "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" } } }
{ "allOf": [ { "required": [ "id", "username", "email" ], "properties": { "id": { "type": "number", "example": 777 }, "username": { "type": "string", "example": "Demo User" }, "email": { "type": "string", "example": "demo@tchop.io" } } }, { "type": "object", "required": [ "token" ], "properties": { "settings": { "required": [ "isAppLocked" ], "properties": { "isAppLocked": { "type": "boolean" } ] } } } } }
### Feat(Pages):Add refPath Data #### client/pages/apiService.vue `replacedApiDoc`で`"$ref"`は完全に置換してしまっていたが、参照先のモデル名を表示させる必要があるため、`"refPath"`としてプロパティを追加。
Types of changes
What kind of change does this PR introduce? (check at least one)
Description
Issue Number: N/A
Style(components):change style
client/components/ApiMethod.vue
<v-select></v-select>
内のoptionの並びを統一。Feat(components):Add Response
client/components/ApiMethod.vue
115行目~122行目:computedにarrOfResponseの追加
this.flatPathsObj.opeObj.responses
をstatusCodeとResponseObjの組み合わせのオブジェクトに整形。78行目~92行目:
<table></table>
内で、statusCodeとresponseObjを一覧化 OpenAPISpece - Response Objectの仕様に準じて、一覧表示させる。<api-response :response-obj="response.responseObj"/>
に値を受け渡す。client/components/ApiResponse.vue
Sample Response Object
{ "description": "A complex object array response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VeryComplexType" } } } } }
sample1 typeがない
{ "required": [ "code", "message", ], "properties": { "code": { "type": "string", "example": "" }, "message": { "type": "string" } } }
sample2 type:array
{ "type": "array", "items": { "required": [ "id", "name", "role" ], "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "role": { "type": "string" } } }
sample3 type:object
{ "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" } } }
sample4 allOf/oneOf/anyOf
{ "allOf": [ { "required": [ "id", "username", "email" ], "properties": { "id": { "type": "number", "example": 777 }, "username": { "type": "string", "example": "Demo User" }, "email": { "type": "string", "example": "demo@tchop.io" } } }, { "type": "object", "required": [ "token" ], "properties": { "settings": { "required": [ "isAppLocked" ], "properties": { "isAppLocked": { "type": "boolean" } ] } } } } }