@typespec/http-specs 0.37.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -0
- package/LICENSE +21 -0
- package/README.md +36 -0
- package/assets/image.jpg +0 -0
- package/assets/image.png +0 -0
- package/dist/specs/authentication/api-key/mockapi.d.ts +3 -0
- package/dist/specs/authentication/api-key/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/api-key/mockapi.js +45 -0
- package/dist/specs/authentication/api-key/mockapi.js.map +1 -0
- package/dist/specs/authentication/commonapi.d.ts +9 -0
- package/dist/specs/authentication/commonapi.d.ts.map +1 -0
- package/dist/specs/authentication/commonapi.js +19 -0
- package/dist/specs/authentication/commonapi.js.map +1 -0
- package/dist/specs/authentication/http/custom/mockapi.d.ts +3 -0
- package/dist/specs/authentication/http/custom/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/http/custom/mockapi.js +45 -0
- package/dist/specs/authentication/http/custom/mockapi.js.map +1 -0
- package/dist/specs/authentication/oauth2/mockapi.d.ts +3 -0
- package/dist/specs/authentication/oauth2/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/oauth2/mockapi.js +42 -0
- package/dist/specs/authentication/oauth2/mockapi.js.map +1 -0
- package/dist/specs/authentication/union/mockapi.d.ts +3 -0
- package/dist/specs/authentication/union/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/union/mockapi.js +37 -0
- package/dist/specs/authentication/union/mockapi.js.map +1 -0
- package/dist/specs/encode/bytes/mockapi.d.ts +3 -0
- package/dist/specs/encode/bytes/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/bytes/mockapi.js +179 -0
- package/dist/specs/encode/bytes/mockapi.js.map +1 -0
- package/dist/specs/encode/datetime/mockapi.d.ts +3 -0
- package/dist/specs/encode/datetime/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/datetime/mockapi.js +160 -0
- package/dist/specs/encode/datetime/mockapi.js.map +1 -0
- package/dist/specs/encode/duration/mockapi.d.ts +3 -0
- package/dist/specs/encode/duration/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/duration/mockapi.js +116 -0
- package/dist/specs/encode/duration/mockapi.js.map +1 -0
- package/dist/specs/encode/numeric/mockapi.d.ts +3 -0
- package/dist/specs/encode/numeric/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/numeric/mockapi.js +29 -0
- package/dist/specs/encode/numeric/mockapi.js.map +1 -0
- package/dist/specs/helper.d.ts +3 -0
- package/dist/specs/helper.d.ts.map +1 -0
- package/dist/specs/helper.js +7 -0
- package/dist/specs/helper.js.map +1 -0
- package/dist/specs/parameters/basic/mockapi.d.ts +3 -0
- package/dist/specs/parameters/basic/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/basic/mockapi.js +24 -0
- package/dist/specs/parameters/basic/mockapi.js.map +1 -0
- package/dist/specs/parameters/body-optionality/mockapi.d.ts +3 -0
- package/dist/specs/parameters/body-optionality/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/body-optionality/mockapi.js +62 -0
- package/dist/specs/parameters/body-optionality/mockapi.js.map +1 -0
- package/dist/specs/parameters/collection-format/mockapi.d.ts +3 -0
- package/dist/specs/parameters/collection-format/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/collection-format/mockapi.js +106 -0
- package/dist/specs/parameters/collection-format/mockapi.js.map +1 -0
- package/dist/specs/parameters/spread/mockapi.d.ts +3 -0
- package/dist/specs/parameters/spread/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/spread/mockapi.js +206 -0
- package/dist/specs/parameters/spread/mockapi.js.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts +40 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js +141 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js.map +1 -0
- package/dist/specs/payload/media-type/mockapi.d.ts +3 -0
- package/dist/specs/payload/media-type/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/media-type/mockapi.js +84 -0
- package/dist/specs/payload/media-type/mockapi.js.map +1 -0
- package/dist/specs/payload/multipart/mockapi.d.ts +3 -0
- package/dist/specs/payload/multipart/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/multipart/mockapi.js +153 -0
- package/dist/specs/payload/multipart/mockapi.js.map +1 -0
- package/dist/specs/payload/xml/mockapi.d.ts +15 -0
- package/dist/specs/payload/xml/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/xml/mockapi.js +189 -0
- package/dist/specs/payload/xml/mockapi.js.map +1 -0
- package/dist/specs/routes/mockapi.d.ts +3 -0
- package/dist/specs/routes/mockapi.d.ts.map +1 -0
- package/dist/specs/routes/mockapi.js +63 -0
- package/dist/specs/routes/mockapi.js.map +1 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.d.ts +3 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.d.ts.map +1 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.js +32 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.js.map +1 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.d.ts +3 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.d.ts.map +1 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.js +15 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.js.map +1 -0
- package/dist/specs/server/path/multiple/mockapi.d.ts +3 -0
- package/dist/specs/server/path/multiple/mockapi.d.ts.map +1 -0
- package/dist/specs/server/path/multiple/mockapi.js +27 -0
- package/dist/specs/server/path/multiple/mockapi.js.map +1 -0
- package/dist/specs/server/path/single/mockapi.d.ts +3 -0
- package/dist/specs/server/path/single/mockapi.d.ts.map +1 -0
- package/dist/specs/server/path/single/mockapi.js +15 -0
- package/dist/specs/server/path/single/mockapi.js.map +1 -0
- package/dist/specs/server/versions/not-versioned/mockapi.d.ts +3 -0
- package/dist/specs/server/versions/not-versioned/mockapi.d.ts.map +1 -0
- package/dist/specs/server/versions/not-versioned/mockapi.js +46 -0
- package/dist/specs/server/versions/not-versioned/mockapi.js.map +1 -0
- package/dist/specs/server/versions/versioned/mockapi.d.ts +3 -0
- package/dist/specs/server/versions/versioned/mockapi.d.ts.map +1 -0
- package/dist/specs/server/versions/versioned/mockapi.js +47 -0
- package/dist/specs/server/versions/versioned/mockapi.js.map +1 -0
- package/dist/specs/special-headers/conditional-request/mockapi.d.ts +3 -0
- package/dist/specs/special-headers/conditional-request/mockapi.d.ts.map +1 -0
- package/dist/specs/special-headers/conditional-request/mockapi.js +79 -0
- package/dist/specs/special-headers/conditional-request/mockapi.js.map +1 -0
- package/dist/specs/special-headers/repeatability/mockapi.d.ts +3 -0
- package/dist/specs/special-headers/repeatability/mockapi.d.ts.map +1 -0
- package/dist/specs/special-headers/repeatability/mockapi.js +36 -0
- package/dist/specs/special-headers/repeatability/mockapi.js.map +1 -0
- package/dist/specs/special-words/dec.d.ts +22 -0
- package/dist/specs/special-words/dec.d.ts.map +1 -0
- package/dist/specs/special-words/dec.js +37 -0
- package/dist/specs/special-words/dec.js.map +1 -0
- package/dist/specs/special-words/mockapi.d.ts +3 -0
- package/dist/specs/special-words/mockapi.d.ts.map +1 -0
- package/dist/specs/special-words/mockapi.js +246 -0
- package/dist/specs/special-words/mockapi.js.map +1 -0
- package/dist/specs/type/array/mockapi.d.ts +3 -0
- package/dist/specs/type/array/mockapi.d.ts.map +1 -0
- package/dist/specs/type/array/mockapi.js +104 -0
- package/dist/specs/type/array/mockapi.js.map +1 -0
- package/dist/specs/type/dictionary/mockapi.d.ts +3 -0
- package/dist/specs/type/dictionary/mockapi.d.ts.map +1 -0
- package/dist/specs/type/dictionary/mockapi.js +103 -0
- package/dist/specs/type/dictionary/mockapi.js.map +1 -0
- package/dist/specs/type/enum/extensible/mockapi.d.ts +3 -0
- package/dist/specs/type/enum/extensible/mockapi.d.ts.map +1 -0
- package/dist/specs/type/enum/extensible/mockapi.js +46 -0
- package/dist/specs/type/enum/extensible/mockapi.js.map +1 -0
- package/dist/specs/type/enum/fixed/mockapi.d.ts +3 -0
- package/dist/specs/type/enum/fixed/mockapi.d.ts.map +1 -0
- package/dist/specs/type/enum/fixed/mockapi.js +53 -0
- package/dist/specs/type/enum/fixed/mockapi.js.map +1 -0
- package/dist/specs/type/model/empty/mockapi.d.ts +3 -0
- package/dist/specs/type/model/empty/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/empty/mockapi.js +48 -0
- package/dist/specs/type/model/empty/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js +79 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js +147 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js +47 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.js +47 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js +122 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/templated/mockapi.d.ts +3 -0
- package/dist/specs/type/model/templated/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/templated/mockapi.js +99 -0
- package/dist/specs/type/model/templated/mockapi.js.map +1 -0
- package/dist/specs/type/model/usage/mockapi.d.ts +3 -0
- package/dist/specs/type/model/usage/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/usage/mockapi.js +52 -0
- package/dist/specs/type/model/usage/mockapi.js.map +1 -0
- package/dist/specs/type/model/visibility/mockapi.d.ts +3 -0
- package/dist/specs/type/model/visibility/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/visibility/mockapi.js +138 -0
- package/dist/specs/type/model/visibility/mockapi.js.map +1 -0
- package/dist/specs/type/property/additional-properties/mockapi.d.ts +3 -0
- package/dist/specs/type/property/additional-properties/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/additional-properties/mockapi.js +346 -0
- package/dist/specs/type/property/additional-properties/mockapi.js.map +1 -0
- package/dist/specs/type/property/nullable/mockapi.d.ts +3 -0
- package/dist/specs/type/property/nullable/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/nullable/mockapi.js +147 -0
- package/dist/specs/type/property/nullable/mockapi.js.map +1 -0
- package/dist/specs/type/property/optionality/mockapi.d.ts +3 -0
- package/dist/specs/type/property/optionality/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/optionality/mockapi.js +197 -0
- package/dist/specs/type/property/optionality/mockapi.js.map +1 -0
- package/dist/specs/type/property/value-types/mockapi.d.ts +3 -0
- package/dist/specs/type/property/value-types/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/value-types/mockapi.js +213 -0
- package/dist/specs/type/property/value-types/mockapi.js.map +1 -0
- package/dist/specs/type/scalar/mockapi.d.ts +3 -0
- package/dist/specs/type/scalar/mockapi.d.ts.map +1 -0
- package/dist/specs/type/scalar/mockapi.js +274 -0
- package/dist/specs/type/scalar/mockapi.js.map +1 -0
- package/dist/specs/type/union/mockapi.d.ts +3 -0
- package/dist/specs/type/union/mockapi.d.ts.map +1 -0
- package/dist/specs/type/union/mockapi.js +113 -0
- package/dist/specs/type/union/mockapi.js.map +1 -0
- package/dist/specs/versioning/added/mockapi.d.ts +3 -0
- package/dist/specs/versioning/added/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/added/mockapi.js +76 -0
- package/dist/specs/versioning/added/mockapi.js.map +1 -0
- package/dist/specs/versioning/madeOptional/mockapi.d.ts +3 -0
- package/dist/specs/versioning/madeOptional/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/madeOptional/mockapi.js +24 -0
- package/dist/specs/versioning/madeOptional/mockapi.js.map +1 -0
- package/dist/specs/versioning/removed/mockapi.d.ts +3 -0
- package/dist/specs/versioning/removed/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/removed/mockapi.js +26 -0
- package/dist/specs/versioning/removed/mockapi.js.map +1 -0
- package/dist/specs/versioning/renamedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/renamedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/renamedFrom/mockapi.js +53 -0
- package/dist/specs/versioning/renamedFrom/mockapi.js.map +1 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js +25 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js.map +1 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js +29 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
- package/package.json +53 -0
- package/specs/README.md +3 -0
- package/specs/authentication/api-key/main.tsp +39 -0
- package/specs/authentication/api-key/mockapi.ts +47 -0
- package/specs/authentication/commonapi.ts +43 -0
- package/specs/authentication/http/custom/main.tsp +39 -0
- package/specs/authentication/http/custom/mockapi.ts +47 -0
- package/specs/authentication/oauth2/main.tsp +44 -0
- package/specs/authentication/oauth2/mockapi.ts +44 -0
- package/specs/authentication/union/main.tsp +29 -0
- package/specs/authentication/union/mockapi.ts +39 -0
- package/specs/encode/bytes/main.tsp +369 -0
- package/specs/encode/bytes/mockapi.ts +309 -0
- package/specs/encode/datetime/main.tsp +344 -0
- package/specs/encode/datetime/mockapi.ts +274 -0
- package/specs/encode/duration/main.tsp +322 -0
- package/specs/encode/duration/mockapi.ts +204 -0
- package/specs/encode/numeric/main.tsp +71 -0
- package/specs/encode/numeric/mockapi.ts +39 -0
- package/specs/helper.ts +8 -0
- package/specs/parameters/basic/main.tsp +61 -0
- package/specs/parameters/basic/mockapi.ts +29 -0
- package/specs/parameters/body-optionality/main.tsp +63 -0
- package/specs/parameters/body-optionality/mockapi.ts +71 -0
- package/specs/parameters/collection-format/main.tsp +95 -0
- package/specs/parameters/collection-format/mockapi.ts +113 -0
- package/specs/parameters/spread/main.tsp +340 -0
- package/specs/parameters/spread/mockapi.ts +216 -0
- package/specs/payload/json-merge-patch/main.tsp +183 -0
- package/specs/payload/json-merge-patch/mockapi.ts +146 -0
- package/specs/payload/media-type/main.tsp +54 -0
- package/specs/payload/media-type/mockapi.ts +88 -0
- package/specs/payload/multipart/main.tsp +499 -0
- package/specs/payload/multipart/mockapi.ts +226 -0
- package/specs/payload/xml/main.tsp +312 -0
- package/specs/payload/xml/mockapi.ts +244 -0
- package/specs/routes/main.tsp +476 -0
- package/specs/routes/mockapi.ts +158 -0
- package/specs/scratch/.gitignore +3 -0
- package/specs/serialization/encoded-name/json/main.tsp +45 -0
- package/specs/serialization/encoded-name/json/mockapi.ts +34 -0
- package/specs/server/endpoint/not-defined/main.tsp +19 -0
- package/specs/server/endpoint/not-defined/mockapi.ts +16 -0
- package/specs/server/path/multiple/main.tsp +46 -0
- package/specs/server/path/multiple/mockapi.ts +29 -0
- package/specs/server/path/single/main.tsp +23 -0
- package/specs/server/path/single/mockapi.ts +16 -0
- package/specs/server/versions/not-versioned/main.tsp +39 -0
- package/specs/server/versions/not-versioned/mockapi.ts +55 -0
- package/specs/server/versions/versioned/main.tsp +65 -0
- package/specs/server/versions/versioned/mockapi.ts +68 -0
- package/specs/special-headers/conditional-request/main.tsp +89 -0
- package/specs/special-headers/conditional-request/mockapi.ts +83 -0
- package/specs/special-headers/repeatability/main.tsp +39 -0
- package/specs/special-headers/repeatability/mockapi.ts +47 -0
- package/specs/special-words/dec.js +52 -0
- package/specs/special-words/main.tsp +238 -0
- package/specs/special-words/mockapi.ts +407 -0
- package/specs/type/array/main.tsp +132 -0
- package/specs/type/array/mockapi.ts +119 -0
- package/specs/type/dictionary/main.tsp +122 -0
- package/specs/type/dictionary/mockapi.ts +115 -0
- package/specs/type/enum/extensible/main.tsp +64 -0
- package/specs/type/enum/extensible/mockapi.ts +55 -0
- package/specs/type/enum/fixed/main.tsp +60 -0
- package/specs/type/enum/fixed/mockapi.ts +55 -0
- package/specs/type/model/empty/main.tsp +39 -0
- package/specs/type/model/empty/mockapi.ts +51 -0
- package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
- package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +99 -0
- package/specs/type/model/inheritance/nested-discriminator/main.tsp +223 -0
- package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +150 -0
- package/specs/type/model/inheritance/not-discriminated/main.tsp +53 -0
- package/specs/type/model/inheritance/not-discriminated/mockapi.ts +49 -0
- package/specs/type/model/inheritance/recursive/main.tsp +70 -0
- package/specs/type/model/inheritance/recursive/mockapi.ts +48 -0
- package/specs/type/model/inheritance/single-discriminator/main.tsp +171 -0
- package/specs/type/model/inheritance/single-discriminator/mockapi.ts +126 -0
- package/specs/type/model/templated/main.tsp +130 -0
- package/specs/type/model/templated/mockapi.ts +102 -0
- package/specs/type/model/usage/main.tsp +48 -0
- package/specs/type/model/usage/mockapi.ts +56 -0
- package/specs/type/model/visibility/main.tsp +152 -0
- package/specs/type/model/visibility/mockapi.ts +139 -0
- package/specs/type/property/additional-properties/main.tsp +591 -0
- package/specs/type/property/additional-properties/mockapi.ts +477 -0
- package/specs/type/property/nullable/client.tsp +21 -0
- package/specs/type/property/nullable/main.tsp +162 -0
- package/specs/type/property/nullable/mockapi.ts +202 -0
- package/specs/type/property/optionality/main.tsp +258 -0
- package/specs/type/property/optionality/mockapi.ts +308 -0
- package/specs/type/property/value-types/main.tsp +285 -0
- package/specs/type/property/value-types/mockapi.ts +297 -0
- package/specs/type/scalar/main.tsp +164 -0
- package/specs/type/scalar/mockapi.ts +280 -0
- package/specs/type/union/main.tsp +262 -0
- package/specs/type/union/mockapi.ts +137 -0
- package/specs/versioning/added/main.tsp +135 -0
- package/specs/versioning/added/mockapi.ts +79 -0
- package/specs/versioning/madeOptional/main.tsp +64 -0
- package/specs/versioning/madeOptional/mockapi.ts +25 -0
- package/specs/versioning/removed/main.tsp +125 -0
- package/specs/versioning/removed/mockapi.ts +27 -0
- package/specs/versioning/renamedFrom/main.tsp +111 -0
- package/specs/versioning/renamedFrom/mockapi.ts +55 -0
- package/specs/versioning/returnTypeChangedFrom/main.tsp +56 -0
- package/specs/versioning/returnTypeChangedFrom/mockapi.ts +26 -0
- package/specs/versioning/typeChangedFrom/main.tsp +70 -0
- package/specs/versioning/typeChangedFrom/mockapi.ts +30 -0
- package/temp/.tsbuildinfo +1 -0
- package/tsconfig.build.json +9 -0
- package/tsconfig.json +11 -0
- package/tspconfig.yaml +2 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Type_Enum_Fixed_String_getKnownValue = passOnSuccess({
|
|
6
|
+
uri: "/type/enum/fixed/string/known-value",
|
|
7
|
+
method: "get",
|
|
8
|
+
request: {},
|
|
9
|
+
response: {
|
|
10
|
+
status: 200,
|
|
11
|
+
body: json("Monday"),
|
|
12
|
+
},
|
|
13
|
+
handler: (req: MockRequest) => {
|
|
14
|
+
return { status: 200, body: json("Monday") };
|
|
15
|
+
},
|
|
16
|
+
kind: "MockApiDefinition",
|
|
17
|
+
});
|
|
18
|
+
Scenarios.Type_Enum_Fixed_String_putKnownValue = passOnSuccess({
|
|
19
|
+
uri: "/type/enum/fixed/string/known-value",
|
|
20
|
+
method: "put",
|
|
21
|
+
request: {
|
|
22
|
+
body: "Monday",
|
|
23
|
+
headers: {
|
|
24
|
+
"Content-Type": "application/json",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
response: {
|
|
28
|
+
status: 204,
|
|
29
|
+
},
|
|
30
|
+
handler: (req: MockRequest) => {
|
|
31
|
+
req.expect.bodyEquals("Monday");
|
|
32
|
+
return { status: 204 };
|
|
33
|
+
},
|
|
34
|
+
kind: "MockApiDefinition",
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
Scenarios.Type_Enum_Fixed_String_putUnknownValue = passOnSuccess({
|
|
38
|
+
uri: "/type/enum/fixed/string/unknown-value",
|
|
39
|
+
method: "put",
|
|
40
|
+
request: {
|
|
41
|
+
body: "Weekend",
|
|
42
|
+
headers: {
|
|
43
|
+
"Content-Type": "application/json",
|
|
44
|
+
},
|
|
45
|
+
status: 500,
|
|
46
|
+
},
|
|
47
|
+
response: {
|
|
48
|
+
status: 500,
|
|
49
|
+
},
|
|
50
|
+
handler: (req: MockRequest) => {
|
|
51
|
+
req.expect.bodyEquals("Weekend");
|
|
52
|
+
return { status: 500 };
|
|
53
|
+
},
|
|
54
|
+
kind: "MockApiDefinition",
|
|
55
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
|
|
6
|
+
@doc("Illustrates usage of empty model used in operation's parameters and responses.")
|
|
7
|
+
@scenarioService("/type/model/empty")
|
|
8
|
+
namespace Type.Model.Empty;
|
|
9
|
+
|
|
10
|
+
@doc("Empty model used in operation parameters")
|
|
11
|
+
model EmptyInput {}
|
|
12
|
+
|
|
13
|
+
@doc("Empty model used in operation return type")
|
|
14
|
+
model EmptyOutput {}
|
|
15
|
+
|
|
16
|
+
@doc("Empty model used in both parameter and return type")
|
|
17
|
+
model EmptyInputOutput {}
|
|
18
|
+
|
|
19
|
+
@scenario
|
|
20
|
+
@scenarioDoc("Send a PUT request with the following body {}")
|
|
21
|
+
@route("/alone")
|
|
22
|
+
@put
|
|
23
|
+
op putEmpty(@body input: EmptyInput): void;
|
|
24
|
+
|
|
25
|
+
@scenario
|
|
26
|
+
@scenarioDoc("Send a GET request which returns the following body {}")
|
|
27
|
+
@route("/alone")
|
|
28
|
+
@get
|
|
29
|
+
op getEmpty(): {
|
|
30
|
+
@body body: EmptyOutput;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
@scenario
|
|
34
|
+
@scenarioDoc("Send a POST request with the following body {} which returns the same.")
|
|
35
|
+
@route("/round-trip")
|
|
36
|
+
@post
|
|
37
|
+
op postRoundTripEmpty(@body body: EmptyInputOutput): {
|
|
38
|
+
@body body: EmptyInputOutput;
|
|
39
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
const body = {};
|
|
6
|
+
|
|
7
|
+
Scenarios.Type_Model_Empty_putEmpty = passOnSuccess({
|
|
8
|
+
uri: "/type/model/empty/alone",
|
|
9
|
+
method: "put",
|
|
10
|
+
request: {
|
|
11
|
+
body: body,
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
handler: (req: MockRequest) => {
|
|
17
|
+
req.expect.bodyEquals(body);
|
|
18
|
+
return { status: 204 };
|
|
19
|
+
},
|
|
20
|
+
kind: "MockApiDefinition",
|
|
21
|
+
});
|
|
22
|
+
Scenarios.Type_Model_Empty_getEmpty = passOnSuccess({
|
|
23
|
+
uri: "/type/model/empty/alone",
|
|
24
|
+
method: "get",
|
|
25
|
+
request: {},
|
|
26
|
+
response: {
|
|
27
|
+
status: 200,
|
|
28
|
+
body: json(body),
|
|
29
|
+
},
|
|
30
|
+
handler: (req: MockRequest) => {
|
|
31
|
+
return { status: 200, body: json(body) };
|
|
32
|
+
},
|
|
33
|
+
kind: "MockApiDefinition",
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
Scenarios.Type_Model_Empty_postRoundTripEmpty = passOnSuccess({
|
|
37
|
+
uri: "/type/model/empty/round-trip",
|
|
38
|
+
method: "post",
|
|
39
|
+
request: {
|
|
40
|
+
body: body,
|
|
41
|
+
},
|
|
42
|
+
response: {
|
|
43
|
+
status: 200,
|
|
44
|
+
body: json(body),
|
|
45
|
+
},
|
|
46
|
+
handler: (req: MockRequest) => {
|
|
47
|
+
req.expect.bodyEquals(body);
|
|
48
|
+
return { status: 200, body: json(body) };
|
|
49
|
+
},
|
|
50
|
+
kind: "MockApiDefinition",
|
|
51
|
+
});
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
using Azure.Core;
|
|
6
|
+
|
|
7
|
+
@doc("Illustrates inheritance with enum discriminator.")
|
|
8
|
+
@scenarioService("/type/model/inheritance/enum-discriminator")
|
|
9
|
+
namespace Type.Model.Inheritance.EnumDiscriminator;
|
|
10
|
+
|
|
11
|
+
@doc("extensible enum type for discriminator")
|
|
12
|
+
union DogKind {
|
|
13
|
+
string,
|
|
14
|
+
|
|
15
|
+
@doc("Species golden")
|
|
16
|
+
Golden: "golden",
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@doc("Test extensible enum type for discriminator")
|
|
20
|
+
@discriminator("kind")
|
|
21
|
+
model Dog {
|
|
22
|
+
@doc("discriminator property")
|
|
23
|
+
kind: DogKind;
|
|
24
|
+
|
|
25
|
+
@doc("Weight of the dog")
|
|
26
|
+
weight: int32;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@doc("Golden dog model")
|
|
30
|
+
model Golden extends Dog {
|
|
31
|
+
@doc("discriminator property")
|
|
32
|
+
kind: DogKind.Golden;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
#suppress "@azure-tools/typespec-azure-core/use-extensible-enum" "For testing fixed enum as discriminator property"
|
|
36
|
+
@doc("fixed enum type for discriminator")
|
|
37
|
+
enum SnakeKind {
|
|
38
|
+
@doc("Species cobra")
|
|
39
|
+
Cobra: "cobra",
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#suppress "@azure-tools/typespec-azure-core/no-fixed-enum-discriminator" "For testing fixed enum as discriminator property"
|
|
43
|
+
@doc("Test fixed enum type for discriminator")
|
|
44
|
+
@discriminator("kind")
|
|
45
|
+
model Snake {
|
|
46
|
+
@doc("discriminator property")
|
|
47
|
+
kind: SnakeKind;
|
|
48
|
+
|
|
49
|
+
@doc("Length of the snake")
|
|
50
|
+
length: int32;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@doc("Cobra model")
|
|
54
|
+
model Cobra extends Snake {
|
|
55
|
+
@doc("discriminator property")
|
|
56
|
+
kind: SnakeKind.Cobra;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
|
|
60
|
+
@doc("Receive model with extensible enum discriminator type.")
|
|
61
|
+
@scenario
|
|
62
|
+
@scenarioDoc("""
|
|
63
|
+
Receive model with extensible enum discriminator type.
|
|
64
|
+
Expected response body:
|
|
65
|
+
```json
|
|
66
|
+
{"kind": "golden", "weight": 10}
|
|
67
|
+
```
|
|
68
|
+
""")
|
|
69
|
+
@route("/extensible-enum")
|
|
70
|
+
@get
|
|
71
|
+
op getExtensibleModel(): Dog;
|
|
72
|
+
|
|
73
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
|
|
74
|
+
@doc("Send model with extensible enum discriminator type.")
|
|
75
|
+
@scenario
|
|
76
|
+
@scenarioDoc("""
|
|
77
|
+
Send model with extensible enum discriminator type.
|
|
78
|
+
Expected request body:
|
|
79
|
+
```json
|
|
80
|
+
{"kind": "golden", "weight": 10}
|
|
81
|
+
```
|
|
82
|
+
""")
|
|
83
|
+
@route("/extensible-enum")
|
|
84
|
+
@put
|
|
85
|
+
op putExtensibleModel(@body @doc("Dog to create") input: Dog): NoContentResponse;
|
|
86
|
+
|
|
87
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
|
|
88
|
+
@doc("Get a model omitting the discriminator.")
|
|
89
|
+
@scenario
|
|
90
|
+
@route("/extensible-enum/missingdiscriminator")
|
|
91
|
+
@scenarioDoc("""
|
|
92
|
+
Get a model omitting the discriminator.
|
|
93
|
+
Expected response body:
|
|
94
|
+
```json
|
|
95
|
+
{"weight": 10}
|
|
96
|
+
```
|
|
97
|
+
""")
|
|
98
|
+
@get
|
|
99
|
+
op getExtensibleModelMissingDiscriminator(): Dog;
|
|
100
|
+
|
|
101
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
|
|
102
|
+
@doc("Get a model containing discriminator value never defined.")
|
|
103
|
+
@scenario
|
|
104
|
+
@route("/extensible-enum/wrongdiscriminator")
|
|
105
|
+
@scenarioDoc("""
|
|
106
|
+
Get a model containing discriminator value never defined.
|
|
107
|
+
Expected response body:
|
|
108
|
+
```json
|
|
109
|
+
{"weight": 8, "kind": "wrongKind" }
|
|
110
|
+
```
|
|
111
|
+
""")
|
|
112
|
+
@get
|
|
113
|
+
op getExtensibleModelWrongDiscriminator(): Dog;
|
|
114
|
+
|
|
115
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
|
|
116
|
+
@doc("Receive model with fixed enum discriminator type.")
|
|
117
|
+
@scenario
|
|
118
|
+
@scenarioDoc("""
|
|
119
|
+
Receive model with fixed enum discriminator type.
|
|
120
|
+
Expected response body:
|
|
121
|
+
```json
|
|
122
|
+
{"kind": "cobra", "length": 10}
|
|
123
|
+
```
|
|
124
|
+
""")
|
|
125
|
+
@route("/fixed-enum")
|
|
126
|
+
@get
|
|
127
|
+
op getFixedModel(): Snake;
|
|
128
|
+
|
|
129
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
|
|
130
|
+
@doc("Send model with fixed enum discriminator type.")
|
|
131
|
+
@scenario
|
|
132
|
+
@scenarioDoc("""
|
|
133
|
+
Send model with fixed enum discriminator type.
|
|
134
|
+
Expected request body:
|
|
135
|
+
```json
|
|
136
|
+
{"kind": "cobra", "length": 10}
|
|
137
|
+
```
|
|
138
|
+
""")
|
|
139
|
+
@route("/fixed-enum")
|
|
140
|
+
@put
|
|
141
|
+
op putFixedModel(@body @doc("Snake to create") input: Snake): NoContentResponse;
|
|
142
|
+
|
|
143
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
|
|
144
|
+
@doc("Get a model omitting the discriminator.")
|
|
145
|
+
@scenario
|
|
146
|
+
@route("/fixed-enum/missingdiscriminator")
|
|
147
|
+
@scenarioDoc("""
|
|
148
|
+
Get a model omitting the discriminator.
|
|
149
|
+
Expected response body:
|
|
150
|
+
```json
|
|
151
|
+
{"length": 10}
|
|
152
|
+
```
|
|
153
|
+
""")
|
|
154
|
+
@get
|
|
155
|
+
op getFixedModelMissingDiscriminator(): Snake;
|
|
156
|
+
|
|
157
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
|
|
158
|
+
@doc("Get a model containing discriminator value never defined.")
|
|
159
|
+
@scenario
|
|
160
|
+
@route("/fixed-enum/wrongdiscriminator")
|
|
161
|
+
@scenarioDoc("""
|
|
162
|
+
Get a model containing discriminator value never defined.
|
|
163
|
+
Expected response body:
|
|
164
|
+
```json
|
|
165
|
+
{"length": 8, "kind": "wrongKind" }
|
|
166
|
+
```
|
|
167
|
+
""")
|
|
168
|
+
@get
|
|
169
|
+
op getFixedModelWrongDiscriminator(): Snake;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
const validExtensibleEnumBody = {
|
|
6
|
+
weight: 10,
|
|
7
|
+
kind: "golden",
|
|
8
|
+
};
|
|
9
|
+
const validFixedEnumBody = {
|
|
10
|
+
length: 10,
|
|
11
|
+
kind: "cobra",
|
|
12
|
+
};
|
|
13
|
+
function createGetServerTests(uri: string, data: any) {
|
|
14
|
+
return passOnSuccess({
|
|
15
|
+
uri: uri,
|
|
16
|
+
method: "get",
|
|
17
|
+
request: {},
|
|
18
|
+
response: {
|
|
19
|
+
status: 200,
|
|
20
|
+
body: json(data),
|
|
21
|
+
},
|
|
22
|
+
handler: (req: MockRequest) => {
|
|
23
|
+
return { status: 200, body: json(data) };
|
|
24
|
+
},
|
|
25
|
+
kind: "MockApiDefinition",
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function createGetPutServerTests(uri: string, data: any) {
|
|
30
|
+
return {
|
|
31
|
+
get: passOnSuccess({
|
|
32
|
+
uri: uri,
|
|
33
|
+
method: "get",
|
|
34
|
+
request: {},
|
|
35
|
+
response: {
|
|
36
|
+
status: 200,
|
|
37
|
+
body: json(data),
|
|
38
|
+
},
|
|
39
|
+
handler: (req: MockRequest) => {
|
|
40
|
+
return { status: 200, body: json(data) };
|
|
41
|
+
},
|
|
42
|
+
kind: "MockApiDefinition",
|
|
43
|
+
}),
|
|
44
|
+
put: passOnSuccess({
|
|
45
|
+
uri: uri,
|
|
46
|
+
method: "put",
|
|
47
|
+
request: {
|
|
48
|
+
body: data,
|
|
49
|
+
},
|
|
50
|
+
response: {
|
|
51
|
+
status: 204,
|
|
52
|
+
},
|
|
53
|
+
handler: (req: MockRequest) => {
|
|
54
|
+
req.expect.bodyEquals(data);
|
|
55
|
+
return { status: 204 };
|
|
56
|
+
},
|
|
57
|
+
kind: "MockApiDefinition",
|
|
58
|
+
}),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const Type_Model_Inheritance_Enum_Discriminator_Extensible_Enum = createGetPutServerTests(
|
|
63
|
+
"/type/model/inheritance/enum-discriminator/extensible-enum",
|
|
64
|
+
validExtensibleEnumBody,
|
|
65
|
+
);
|
|
66
|
+
Scenarios.Type_Model_Inheritance_EnumDiscriminator_getExtensibleModel =
|
|
67
|
+
Type_Model_Inheritance_Enum_Discriminator_Extensible_Enum.get;
|
|
68
|
+
Scenarios.Type_Model_Inheritance_EnumDiscriminator_putExtensibleModel =
|
|
69
|
+
Type_Model_Inheritance_Enum_Discriminator_Extensible_Enum.put;
|
|
70
|
+
|
|
71
|
+
const Type_Model_Inheritance_Enum_Discriminator_Fixed_Enum = createGetPutServerTests(
|
|
72
|
+
"/type/model/inheritance/enum-discriminator/fixed-enum",
|
|
73
|
+
validFixedEnumBody,
|
|
74
|
+
);
|
|
75
|
+
Scenarios.Type_Model_Inheritance_EnumDiscriminator_getFixedModel =
|
|
76
|
+
Type_Model_Inheritance_Enum_Discriminator_Fixed_Enum.get;
|
|
77
|
+
Scenarios.Type_Model_Inheritance_EnumDiscriminator_putFixedModel =
|
|
78
|
+
Type_Model_Inheritance_Enum_Discriminator_Fixed_Enum.put;
|
|
79
|
+
|
|
80
|
+
Scenarios.Type_Model_Inheritance_EnumDiscriminator_getExtensibleModelMissingDiscriminator =
|
|
81
|
+
createGetServerTests(
|
|
82
|
+
"/type/model/inheritance/enum-discriminator/extensible-enum/missingdiscriminator",
|
|
83
|
+
{ weight: 10 },
|
|
84
|
+
);
|
|
85
|
+
Scenarios.Type_Model_Inheritance_EnumDiscriminator_getExtensibleModelWrongDiscriminator =
|
|
86
|
+
createGetServerTests(
|
|
87
|
+
"/type/model/inheritance/enum-discriminator/extensible-enum/wrongdiscriminator",
|
|
88
|
+
{ weight: 8, kind: "wrongKind" },
|
|
89
|
+
);
|
|
90
|
+
Scenarios.Type_Model_Inheritance_EnumDiscriminator_getFixedModelMissingDiscriminator =
|
|
91
|
+
createGetServerTests(
|
|
92
|
+
"/type/model/inheritance/enum-discriminator/fixed-enum/missingdiscriminator",
|
|
93
|
+
{ length: 10 },
|
|
94
|
+
);
|
|
95
|
+
Scenarios.Type_Model_Inheritance_EnumDiscriminator_getFixedModelWrongDiscriminator =
|
|
96
|
+
createGetServerTests("/type/model/inheritance/enum-discriminator/fixed-enum/wrongdiscriminator", {
|
|
97
|
+
length: 8,
|
|
98
|
+
kind: "wrongKind",
|
|
99
|
+
});
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
|
|
6
|
+
@doc("Illustrates multiple level inheritance with multiple discriminators.")
|
|
7
|
+
@scenarioService("/type/model/inheritance/nested-discriminator")
|
|
8
|
+
namespace Type.Model.Inheritance.NestedDiscriminator;
|
|
9
|
+
|
|
10
|
+
@doc("This is base model for polymorphic multiple levels inheritance with a discriminator.")
|
|
11
|
+
@discriminator("kind")
|
|
12
|
+
model Fish {
|
|
13
|
+
age: int32;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@doc("The second level model in polymorphic multiple levels inheritance and it defines a new discriminator.")
|
|
17
|
+
@discriminator("sharktype")
|
|
18
|
+
model Shark extends Fish {
|
|
19
|
+
kind: "shark";
|
|
20
|
+
sharktype: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@doc("The second level model in polymorphic multiple levels inheritance which contains references to other polymorphic instances.")
|
|
24
|
+
model Salmon extends Fish {
|
|
25
|
+
kind: "salmon";
|
|
26
|
+
friends?: Fish[];
|
|
27
|
+
hate?: Record<Fish>;
|
|
28
|
+
partner?: Fish;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@doc("The third level model SawShark in polymorphic multiple levels inheritance.")
|
|
32
|
+
model SawShark extends Shark {
|
|
33
|
+
sharktype: "saw";
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@doc("The third level model GoblinShark in polymorphic multiple levels inheritance.")
|
|
37
|
+
model GoblinShark extends Shark {
|
|
38
|
+
sharktype: "goblin";
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@scenario
|
|
42
|
+
@route("/model")
|
|
43
|
+
@scenarioDoc("""
|
|
44
|
+
Generate and receive polymorphic model in multiple levels inheritance with 2 discriminators.
|
|
45
|
+
Expected response body:
|
|
46
|
+
```json
|
|
47
|
+
{"age": 1, "kind": "shark", "sharktype": "goblin"}
|
|
48
|
+
```
|
|
49
|
+
""")
|
|
50
|
+
@get
|
|
51
|
+
op getModel(): Fish;
|
|
52
|
+
|
|
53
|
+
@scenario
|
|
54
|
+
@route("/model")
|
|
55
|
+
@scenarioDoc("""
|
|
56
|
+
Generate and send polymorphic model in multiple levels inheritance with 2 discriminators.
|
|
57
|
+
Expected input body:
|
|
58
|
+
```json
|
|
59
|
+
{"age": 1, "kind": "shark", "sharktype": "goblin"}
|
|
60
|
+
```
|
|
61
|
+
""")
|
|
62
|
+
@put
|
|
63
|
+
op putModel(@body input: Fish): NoContentResponse;
|
|
64
|
+
|
|
65
|
+
@scenario
|
|
66
|
+
@route("/recursivemodel")
|
|
67
|
+
@scenarioDoc("""
|
|
68
|
+
Generate and receive polymorphic models has collection and dictionary properties referring to other polymorphic models.
|
|
69
|
+
Expected response body:
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"age": 1,
|
|
73
|
+
"kind": "salmon",
|
|
74
|
+
"partner": {
|
|
75
|
+
"age": 2,
|
|
76
|
+
"kind": "shark",
|
|
77
|
+
"sharktype": "saw"
|
|
78
|
+
},
|
|
79
|
+
"friends": [
|
|
80
|
+
{
|
|
81
|
+
"age": 2,
|
|
82
|
+
"kind": "salmon",
|
|
83
|
+
"partner": {
|
|
84
|
+
"age": 3,
|
|
85
|
+
"kind": "salmon"
|
|
86
|
+
},
|
|
87
|
+
"hate": {
|
|
88
|
+
"key1": {
|
|
89
|
+
"age": 4,
|
|
90
|
+
"kind": "salmon"
|
|
91
|
+
},
|
|
92
|
+
"key2": {
|
|
93
|
+
"age": 2,
|
|
94
|
+
"kind": "shark",
|
|
95
|
+
"sharktype": "goblin"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"age": 3,
|
|
101
|
+
"kind": "shark",
|
|
102
|
+
"sharktype": "goblin"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"hate": {
|
|
106
|
+
"key3": {
|
|
107
|
+
"age": 3,
|
|
108
|
+
"kind": "shark",
|
|
109
|
+
"sharktype": "saw"
|
|
110
|
+
},
|
|
111
|
+
"key4": {
|
|
112
|
+
"age": 2,
|
|
113
|
+
"kind": "salmon",
|
|
114
|
+
"friends": [
|
|
115
|
+
{
|
|
116
|
+
"age": 1,
|
|
117
|
+
"kind": "salmon"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"age": 4,
|
|
121
|
+
"kind": "shark",
|
|
122
|
+
"sharktype": "goblin"
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
""")
|
|
130
|
+
@get
|
|
131
|
+
op getRecursiveModel(): Fish;
|
|
132
|
+
|
|
133
|
+
@scenario
|
|
134
|
+
@route("/recursivemodel")
|
|
135
|
+
@scenarioDoc("""
|
|
136
|
+
Generate and send polymorphic models has collection and dictionary properties referring to other polymorphic models.
|
|
137
|
+
Expected input body:
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"age": 1,
|
|
141
|
+
"kind": "salmon",
|
|
142
|
+
"partner": {
|
|
143
|
+
"age": 2,
|
|
144
|
+
"kind": "shark",
|
|
145
|
+
"sharktype": "saw"
|
|
146
|
+
},
|
|
147
|
+
"friends": [
|
|
148
|
+
{
|
|
149
|
+
"age": 2,
|
|
150
|
+
"kind": "salmon",
|
|
151
|
+
"partner": {
|
|
152
|
+
"age": 3,
|
|
153
|
+
"kind": "salmon"
|
|
154
|
+
},
|
|
155
|
+
"hate": {
|
|
156
|
+
"key1": {
|
|
157
|
+
"age": 4,
|
|
158
|
+
"kind": "salmon"
|
|
159
|
+
},
|
|
160
|
+
"key2": {
|
|
161
|
+
"age": 2,
|
|
162
|
+
"kind": "shark",
|
|
163
|
+
"sharktype": "goblin"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"age": 3,
|
|
169
|
+
"kind": "shark",
|
|
170
|
+
"sharktype": "goblin"
|
|
171
|
+
}
|
|
172
|
+
],
|
|
173
|
+
"hate": {
|
|
174
|
+
"key3": {
|
|
175
|
+
"age": 3,
|
|
176
|
+
"kind": "shark",
|
|
177
|
+
"sharktype": "saw"
|
|
178
|
+
},
|
|
179
|
+
"key4": {
|
|
180
|
+
"age": 2,
|
|
181
|
+
"kind": "salmon",
|
|
182
|
+
"friends": [
|
|
183
|
+
{
|
|
184
|
+
"age": 1,
|
|
185
|
+
"kind": "salmon"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"age": 4,
|
|
189
|
+
"kind": "shark",
|
|
190
|
+
"sharktype": "goblin"
|
|
191
|
+
}
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
""")
|
|
198
|
+
@put
|
|
199
|
+
op putRecursiveModel(@body input: Fish): NoContentResponse;
|
|
200
|
+
|
|
201
|
+
@scenario
|
|
202
|
+
@route("/missingdiscriminator")
|
|
203
|
+
@scenarioDoc("""
|
|
204
|
+
Get a model omitting the discriminator.
|
|
205
|
+
Expected response body:
|
|
206
|
+
```json
|
|
207
|
+
{"age": 1}
|
|
208
|
+
```
|
|
209
|
+
""")
|
|
210
|
+
@get
|
|
211
|
+
op getMissingDiscriminator(): Fish;
|
|
212
|
+
|
|
213
|
+
@scenario
|
|
214
|
+
@route("/wrongdiscriminator")
|
|
215
|
+
@scenarioDoc("""
|
|
216
|
+
Get a model containing discriminator value never defined.
|
|
217
|
+
Expected response body:
|
|
218
|
+
```json
|
|
219
|
+
{"age": 1, "kind": "wrongKind" }
|
|
220
|
+
```
|
|
221
|
+
""")
|
|
222
|
+
@get
|
|
223
|
+
op getWrongDiscriminator(): Fish;
|