@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,499 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
|
|
6
|
+
@doc("Test for multipart")
|
|
7
|
+
@scenarioService("/multipart")
|
|
8
|
+
namespace Payload.MultiPart;
|
|
9
|
+
|
|
10
|
+
model MultiPartRequest {
|
|
11
|
+
id: string;
|
|
12
|
+
profileImage: bytes;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
model Address {
|
|
16
|
+
city: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
model FileSpecificContentType extends File {
|
|
20
|
+
filename: string;
|
|
21
|
+
contentType: "image/jpg";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
model FileWithHttpPartSpecificContentTypeRequest {
|
|
25
|
+
profileImage: HttpPart<FileSpecificContentType>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
model FileRequiredMetaData extends File {
|
|
29
|
+
filename: string;
|
|
30
|
+
contentType: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
model FileWithHttpPartRequiredContentTypeRequest {
|
|
34
|
+
profileImage: HttpPart<FileRequiredMetaData>;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
model FileOptionalContentType extends File {
|
|
38
|
+
filename: string;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
model FileWithHttpPartOptionalContentTypeRequest {
|
|
42
|
+
profileImage: HttpPart<FileOptionalContentType>;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
model ComplexHttpPartsModelRequest {
|
|
46
|
+
id: HttpPart<string>;
|
|
47
|
+
address: HttpPart<Address>;
|
|
48
|
+
profileImage: HttpPart<FileRequiredMetaData>;
|
|
49
|
+
previousAddresses: HttpPart<Address[]>;
|
|
50
|
+
pictures: HttpPart<FileRequiredMetaData>[];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
model ComplexPartsRequest {
|
|
54
|
+
id: string;
|
|
55
|
+
address: Address;
|
|
56
|
+
profileImage: bytes;
|
|
57
|
+
pictures: bytes[];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
model JsonPartRequest {
|
|
61
|
+
address: Address;
|
|
62
|
+
profileImage: bytes;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
model BinaryArrayPartsRequest {
|
|
66
|
+
id: string;
|
|
67
|
+
pictures: bytes[];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
model MultiBinaryPartsRequest {
|
|
71
|
+
profileImage: bytes;
|
|
72
|
+
picture?: bytes;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@route("/form-data")
|
|
76
|
+
namespace FormData {
|
|
77
|
+
@scenario
|
|
78
|
+
@scenarioDoc("""
|
|
79
|
+
Expect request (
|
|
80
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.4, content-type of file part shall be labeled with
|
|
81
|
+
appropriate media type, cadl-ranch will check it; content-type of other parts is optional, cadl-ranch will ignore it.
|
|
82
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.2, filename of file part SHOULD be supplied.
|
|
83
|
+
If there are duplicated filename in same fieldName, cadl-ranch can't parse them all.
|
|
84
|
+
):
|
|
85
|
+
```
|
|
86
|
+
POST /upload HTTP/1.1
|
|
87
|
+
Content-Length: 428
|
|
88
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
89
|
+
|
|
90
|
+
--abcde12345
|
|
91
|
+
Content-Disposition: form-data; name="id"
|
|
92
|
+
Content-Type: text/plain
|
|
93
|
+
|
|
94
|
+
123
|
|
95
|
+
--abcde12345
|
|
96
|
+
Content-Disposition: form-data; name="profileImage"; filename="<any-or-no-name-is-ok>"
|
|
97
|
+
Content-Type: application/octet-stream;
|
|
98
|
+
|
|
99
|
+
{…file content of .jpg file…}
|
|
100
|
+
--abcde12345--
|
|
101
|
+
```
|
|
102
|
+
""")
|
|
103
|
+
@doc("Test content-type: multipart/form-data")
|
|
104
|
+
@post
|
|
105
|
+
@route("/mixed-parts")
|
|
106
|
+
op basic(
|
|
107
|
+
@header contentType: "multipart/form-data",
|
|
108
|
+
@body body: MultiPartRequest,
|
|
109
|
+
): NoContentResponse;
|
|
110
|
+
|
|
111
|
+
@scenario
|
|
112
|
+
@scenarioDoc("""
|
|
113
|
+
Expect request (
|
|
114
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.4, content-type of file part shall be labeled with
|
|
115
|
+
appropriate media type, cadl-ranch will check it; content-type of other parts is optional, cadl-ranch will ignore it.
|
|
116
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.2, filename of file part SHOULD be supplied.
|
|
117
|
+
If there are duplicated filename in same fieldName, cadl-ranch can't parse them all.
|
|
118
|
+
):
|
|
119
|
+
```
|
|
120
|
+
POST /upload HTTP/1.1
|
|
121
|
+
Content-Length: 428
|
|
122
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
123
|
+
|
|
124
|
+
--abcde12345
|
|
125
|
+
Content-Disposition: form-data; name="id"
|
|
126
|
+
Content-Type: text/plain
|
|
127
|
+
|
|
128
|
+
123
|
|
129
|
+
--abcde12345
|
|
130
|
+
Content-Disposition: form-data; name="address"
|
|
131
|
+
Content-Type: application/json
|
|
132
|
+
|
|
133
|
+
{
|
|
134
|
+
"city": "X"
|
|
135
|
+
}
|
|
136
|
+
--abcde12345
|
|
137
|
+
Content-Disposition: form-data; name="profileImage"; filename="<any-or-no-name-is-ok>"
|
|
138
|
+
Content-Type: application/octet-stream
|
|
139
|
+
|
|
140
|
+
{…file content of .jpg file…}
|
|
141
|
+
--abcde12345--
|
|
142
|
+
Content-Disposition: form-data; name="previousAddresses"
|
|
143
|
+
Content-Type: application/json
|
|
144
|
+
|
|
145
|
+
[{
|
|
146
|
+
"city": "Y"
|
|
147
|
+
},{
|
|
148
|
+
"city": "Z"
|
|
149
|
+
}]
|
|
150
|
+
--abcde12345
|
|
151
|
+
Content-Disposition: form-data; name="pictures"; filename="<any-or-no-name-is-ok>"
|
|
152
|
+
Content-Type: application/octet-stream
|
|
153
|
+
|
|
154
|
+
{…file content of .png file…}
|
|
155
|
+
--abcde12345
|
|
156
|
+
Content-Disposition: form-data; name="pictures"; filename="<any-or-no-name-is-ok>"
|
|
157
|
+
Content-Type: application/octet-stream
|
|
158
|
+
|
|
159
|
+
{…file content of .png file…}
|
|
160
|
+
--abcde12345--
|
|
161
|
+
```
|
|
162
|
+
""")
|
|
163
|
+
@doc("Test content-type: multipart/form-data for mixed scenarios")
|
|
164
|
+
@post
|
|
165
|
+
@route("/complex-parts")
|
|
166
|
+
op fileArrayAndBasic(
|
|
167
|
+
@header contentType: "multipart/form-data",
|
|
168
|
+
@body body: ComplexPartsRequest,
|
|
169
|
+
): NoContentResponse;
|
|
170
|
+
|
|
171
|
+
@scenario
|
|
172
|
+
@scenarioDoc("""
|
|
173
|
+
Expect request (
|
|
174
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.4, content-type of file part shall be labeled with
|
|
175
|
+
appropriate media type, cadl-ranch will check it; content-type of other parts is optional, cadl-ranch will ignore it.
|
|
176
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.2, filename of file part SHOULD be supplied.
|
|
177
|
+
If there are duplicated filename in same fieldName, cadl-ranch can't parse them all.
|
|
178
|
+
):
|
|
179
|
+
```
|
|
180
|
+
POST /upload HTTP/1.1
|
|
181
|
+
Content-Length: 428
|
|
182
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
183
|
+
|
|
184
|
+
--abcde12345
|
|
185
|
+
Content-Disposition: form-data; name="address"
|
|
186
|
+
Content-Type: application/json
|
|
187
|
+
|
|
188
|
+
{
|
|
189
|
+
"city": "X"
|
|
190
|
+
}
|
|
191
|
+
--abcde12345
|
|
192
|
+
Content-Disposition: form-data; name="profileImage"; filename="<any-or-no-name-is-ok>"
|
|
193
|
+
Content-Type: application/octet-stream
|
|
194
|
+
|
|
195
|
+
{…file content of .jpg file…}
|
|
196
|
+
--abcde12345--
|
|
197
|
+
```
|
|
198
|
+
""")
|
|
199
|
+
@doc("Test content-type: multipart/form-data for scenario contains json part and binary part ")
|
|
200
|
+
@post
|
|
201
|
+
@route("/json-part")
|
|
202
|
+
op jsonPart(
|
|
203
|
+
@header contentType: "multipart/form-data",
|
|
204
|
+
@body body: JsonPartRequest,
|
|
205
|
+
): NoContentResponse;
|
|
206
|
+
|
|
207
|
+
@scenario
|
|
208
|
+
@scenarioDoc("""
|
|
209
|
+
Expect request (
|
|
210
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.4, content-type of file part shall be labeled with
|
|
211
|
+
appropriate media type, cadl-ranch will check it; content-type of other parts is optional, cadl-ranch will ignore it.
|
|
212
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.2, filename of file part SHOULD be supplied.
|
|
213
|
+
If there are duplicated filename in same fieldName, cadl-ranch can't parse them all.
|
|
214
|
+
):
|
|
215
|
+
```
|
|
216
|
+
POST /upload HTTP/1.1
|
|
217
|
+
Content-Length: 428
|
|
218
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
219
|
+
|
|
220
|
+
--abcde12345
|
|
221
|
+
Content-Disposition: form-data; name="id"
|
|
222
|
+
Content-Type: text/plain
|
|
223
|
+
|
|
224
|
+
123
|
|
225
|
+
--abcde12345
|
|
226
|
+
Content-Disposition: form-data; name="pictures"; filename="<any-or-no-name-is-ok>"
|
|
227
|
+
Content-Type: application/octet-stream
|
|
228
|
+
|
|
229
|
+
{…file content of .png file…}
|
|
230
|
+
--abcde12345
|
|
231
|
+
Content-Disposition: form-data; name="pictures"; filename="<any-or-no-name-is-ok>"
|
|
232
|
+
Content-Type: application/octet-stream
|
|
233
|
+
|
|
234
|
+
{…file content of .png file…}
|
|
235
|
+
--abcde12345--
|
|
236
|
+
```
|
|
237
|
+
""")
|
|
238
|
+
@doc("Test content-type: multipart/form-data for scenario contains multi binary parts")
|
|
239
|
+
@post
|
|
240
|
+
@route("/binary-array-parts")
|
|
241
|
+
op binaryArrayParts(
|
|
242
|
+
@header contentType: "multipart/form-data",
|
|
243
|
+
@body body: BinaryArrayPartsRequest,
|
|
244
|
+
): NoContentResponse;
|
|
245
|
+
|
|
246
|
+
@scenario
|
|
247
|
+
@scenarioDoc("""
|
|
248
|
+
Please send request twice, first time with only profileImage, second time with both profileImage and picture(
|
|
249
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.4, content-type of file part shall be labeled with
|
|
250
|
+
appropriate media type, cadl-ranch will check it; content-type of other parts is optional, cadl-ranch will ignore it.
|
|
251
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.2, filename of file part SHOULD be supplied.
|
|
252
|
+
If there are duplicated filename in same fieldName, cadl-ranch can't parse them all.
|
|
253
|
+
):
|
|
254
|
+
```
|
|
255
|
+
POST /upload HTTP/1.1
|
|
256
|
+
Content-Length: 428
|
|
257
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
258
|
+
|
|
259
|
+
--abcde12345
|
|
260
|
+
Content-Disposition: form-data; name="profileImage"; filename="<any-or-no-name-is-ok>"
|
|
261
|
+
Content-Type: application/octet-stream
|
|
262
|
+
|
|
263
|
+
{…file content of .jpg file…}
|
|
264
|
+
--abcde12345
|
|
265
|
+
Content-Disposition: form-data; name="picture"; filename="<any-or-no-name-is-ok>"
|
|
266
|
+
Content-Type: application/octet-stream
|
|
267
|
+
|
|
268
|
+
{…file content of .png file…}
|
|
269
|
+
--abcde12345--
|
|
270
|
+
```
|
|
271
|
+
""")
|
|
272
|
+
@doc("Test content-type: multipart/form-data for scenario contains multi binary parts")
|
|
273
|
+
@post
|
|
274
|
+
@route("/multi-binary-parts")
|
|
275
|
+
op multiBinaryParts(
|
|
276
|
+
@header contentType: "multipart/form-data",
|
|
277
|
+
@body body: MultiBinaryPartsRequest,
|
|
278
|
+
): NoContentResponse;
|
|
279
|
+
|
|
280
|
+
@scenario
|
|
281
|
+
@scenarioDoc("""
|
|
282
|
+
this case will check filename and content-type of file part, so expect request:
|
|
283
|
+
```
|
|
284
|
+
POST /upload HTTP/1.1
|
|
285
|
+
Content-Length: 428
|
|
286
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
287
|
+
|
|
288
|
+
--abcde12345
|
|
289
|
+
Content-Disposition: form-data; name="id"
|
|
290
|
+
Content-Type: text/plain
|
|
291
|
+
|
|
292
|
+
123
|
|
293
|
+
--abcde12345
|
|
294
|
+
Content-Disposition: form-data; name="profileImage"; filename="hello.jpg"
|
|
295
|
+
Content-Type: image/jpg
|
|
296
|
+
|
|
297
|
+
{…file content of .jpg file…}
|
|
298
|
+
--abcde12345--
|
|
299
|
+
```
|
|
300
|
+
""")
|
|
301
|
+
@doc("Test content-type: multipart/form-data")
|
|
302
|
+
@post
|
|
303
|
+
@route("/check-filename-and-content-type")
|
|
304
|
+
op checkFileNameAndContentType(
|
|
305
|
+
@header contentType: "multipart/form-data",
|
|
306
|
+
@body body: MultiPartRequest,
|
|
307
|
+
): NoContentResponse;
|
|
308
|
+
|
|
309
|
+
@scenario
|
|
310
|
+
@scenarioDoc("""
|
|
311
|
+
Expect request (
|
|
312
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.4, content-type of file part shall be labeled with
|
|
313
|
+
appropriate media type, cadl-ranch will check it; content-type of other parts is optional, cadl-ranch will ignore it.
|
|
314
|
+
- according to https://datatracker.ietf.org/doc/html/rfc7578#section-4.2, filename of file part SHOULD be supplied.
|
|
315
|
+
If there are duplicated filename in same filedName, cadl-ranch can't parse them all.
|
|
316
|
+
):
|
|
317
|
+
```
|
|
318
|
+
POST /multipart/form-data/anonymous-model HTTP/1.1
|
|
319
|
+
Content-Length: 428
|
|
320
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
321
|
+
|
|
322
|
+
--abcde12345
|
|
323
|
+
Content-Disposition: form-data; name="profileImage"; filename="<any-name-is-ok>"
|
|
324
|
+
Content-Type: application/octet-stream;
|
|
325
|
+
|
|
326
|
+
{…file content of .jpg file…}
|
|
327
|
+
--abcde12345--
|
|
328
|
+
```
|
|
329
|
+
""")
|
|
330
|
+
@doc("Test content-type: multipart/form-data")
|
|
331
|
+
@post
|
|
332
|
+
@route("/anonymous-model")
|
|
333
|
+
op anonymousModel(
|
|
334
|
+
@header contentType: "multipart/form-data",
|
|
335
|
+
profileImage: MultiPartRequest.profileImage,
|
|
336
|
+
): NoContentResponse;
|
|
337
|
+
|
|
338
|
+
namespace HttpParts {
|
|
339
|
+
namespace ContentType {
|
|
340
|
+
@scenario
|
|
341
|
+
@scenarioDoc("""
|
|
342
|
+
This case will check filename and specific content-type of file part, so expect request:
|
|
343
|
+
```
|
|
344
|
+
POST /upload HTTP/1.1
|
|
345
|
+
Content-Length: 428
|
|
346
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
347
|
+
|
|
348
|
+
--abcde12345
|
|
349
|
+
Content-Disposition: form-data; name="profileImage"; filename="hello.jpg"
|
|
350
|
+
Content-Type: image/jpg
|
|
351
|
+
|
|
352
|
+
{…file content of .jpg file…}
|
|
353
|
+
--abcde12345--
|
|
354
|
+
```
|
|
355
|
+
""")
|
|
356
|
+
@doc("Test content-type: multipart/form-data")
|
|
357
|
+
@post
|
|
358
|
+
@route("/check-filename-and-specific-content-type-with-httppart")
|
|
359
|
+
op imageJpegContentType(
|
|
360
|
+
@header contentType: "multipart/form-data",
|
|
361
|
+
@multipartBody body: FileWithHttpPartSpecificContentTypeRequest,
|
|
362
|
+
): NoContentResponse;
|
|
363
|
+
|
|
364
|
+
@scenario
|
|
365
|
+
@scenarioDoc("""
|
|
366
|
+
This case will check required content-type of file part, so expect request:
|
|
367
|
+
```
|
|
368
|
+
POST /upload HTTP/1.1
|
|
369
|
+
Content-Length: 428
|
|
370
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
371
|
+
|
|
372
|
+
--abcde12345
|
|
373
|
+
Content-Disposition: form-data; name="profileImage"; filename="<any-name-is-ok>"
|
|
374
|
+
Content-Type: application/octet-stream
|
|
375
|
+
|
|
376
|
+
{…file content of .jpg file…}
|
|
377
|
+
--abcde12345--
|
|
378
|
+
```
|
|
379
|
+
""")
|
|
380
|
+
@doc("Test content-type: multipart/form-data")
|
|
381
|
+
@post
|
|
382
|
+
@route("/check-filename-and-required-content-type-with-httppart")
|
|
383
|
+
op requiredContentType(
|
|
384
|
+
@header contentType: "multipart/form-data",
|
|
385
|
+
@multipartBody body: FileWithHttpPartRequiredContentTypeRequest,
|
|
386
|
+
): NoContentResponse;
|
|
387
|
+
|
|
388
|
+
@scenario
|
|
389
|
+
@scenarioDoc("""
|
|
390
|
+
Please send request twice, first time with no content-type and second time with content-type "application/octet-stream". Expect request:
|
|
391
|
+
```
|
|
392
|
+
POST /upload HTTP/1.1
|
|
393
|
+
Content-Length: 428
|
|
394
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
395
|
+
|
|
396
|
+
--abcde12345
|
|
397
|
+
Content-Disposition: form-data; name="profileImage"; filename="<any-name-is-ok>"
|
|
398
|
+
Content-Type: application/octet-stream
|
|
399
|
+
|
|
400
|
+
{…file content of .jpg file…}
|
|
401
|
+
--abcde12345
|
|
402
|
+
```
|
|
403
|
+
""")
|
|
404
|
+
@doc("Test content-type: multipart/form-data for optional content type")
|
|
405
|
+
@post
|
|
406
|
+
@route("/file-with-http-part-optional-content-type")
|
|
407
|
+
op optionalContentType(
|
|
408
|
+
@header contentType: "multipart/form-data",
|
|
409
|
+
@multipartBody body: FileWithHttpPartOptionalContentTypeRequest,
|
|
410
|
+
): NoContentResponse;
|
|
411
|
+
}
|
|
412
|
+
@scenario
|
|
413
|
+
@scenarioDoc("""
|
|
414
|
+
For File part, filename will not be checked but it is necessary otherwise cadl-ranch can't parse it;
|
|
415
|
+
content-type will be checked with value "application/octet-stream". Expect request:
|
|
416
|
+
```
|
|
417
|
+
POST /upload HTTP/1.1
|
|
418
|
+
Content-Length: 428
|
|
419
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
420
|
+
|
|
421
|
+
--abcde12345
|
|
422
|
+
Content-Disposition: form-data; name="id"
|
|
423
|
+
Content-Type: text/plain
|
|
424
|
+
|
|
425
|
+
123
|
|
426
|
+
--abcde12345
|
|
427
|
+
Content-Disposition: form-data; name="address"
|
|
428
|
+
Content-Type: application/json
|
|
429
|
+
|
|
430
|
+
{
|
|
431
|
+
"city": "X"
|
|
432
|
+
}
|
|
433
|
+
--abcde12345
|
|
434
|
+
Content-Disposition: form-data; name="profileImage"; filename="<any-name-is-ok>"
|
|
435
|
+
Content-Type: application/octet-stream
|
|
436
|
+
|
|
437
|
+
{…file content of .jpg file…}
|
|
438
|
+
--abcde12345--
|
|
439
|
+
Content-Disposition: form-data; name="previousAddresses"
|
|
440
|
+
Content-Type: application/json
|
|
441
|
+
|
|
442
|
+
[{
|
|
443
|
+
"city": "Y"
|
|
444
|
+
},{
|
|
445
|
+
"city": "Z"
|
|
446
|
+
}]
|
|
447
|
+
--abcde12345
|
|
448
|
+
Content-Disposition: form-data; name="pictures"; filename="<any-name-is-ok>"
|
|
449
|
+
Content-Type: application/octet-stream
|
|
450
|
+
|
|
451
|
+
{…file content of .png file…}
|
|
452
|
+
--abcde12345
|
|
453
|
+
Content-Disposition: form-data; name="pictures"; filename="<any-name-is-ok>"
|
|
454
|
+
Content-Type: application/octet-stream
|
|
455
|
+
|
|
456
|
+
{…file content of .png file…}
|
|
457
|
+
--abcde12345--
|
|
458
|
+
```
|
|
459
|
+
""")
|
|
460
|
+
@doc("Test content-type: multipart/form-data for mixed scenarios")
|
|
461
|
+
@post
|
|
462
|
+
@route("/complex-parts-with-httppart")
|
|
463
|
+
op jsonArrayAndFileArray(
|
|
464
|
+
@header contentType: "multipart/form-data",
|
|
465
|
+
@multipartBody body: ComplexHttpPartsModelRequest,
|
|
466
|
+
): NoContentResponse;
|
|
467
|
+
|
|
468
|
+
namespace NonString {
|
|
469
|
+
@scenario
|
|
470
|
+
@scenarioDoc("""
|
|
471
|
+
Expect request:
|
|
472
|
+
```
|
|
473
|
+
POST /upload HTTP/1.1
|
|
474
|
+
Content-Length: 428
|
|
475
|
+
Content-Type: multipart/form-data; boundary=abcde12345
|
|
476
|
+
|
|
477
|
+
--abcde12345
|
|
478
|
+
Content-Disposition: form-data; name="temperature"
|
|
479
|
+
Content-Type: text/plain
|
|
480
|
+
|
|
481
|
+
0.5
|
|
482
|
+
--abcde12345
|
|
483
|
+
```
|
|
484
|
+
""")
|
|
485
|
+
@doc("Test content-type: multipart/form-data for non string")
|
|
486
|
+
@post
|
|
487
|
+
@route("/non-string-float")
|
|
488
|
+
op float(
|
|
489
|
+
@header contentType: "multipart/form-data",
|
|
490
|
+
@multipartBody body: {
|
|
491
|
+
temperature: HttpPart<{
|
|
492
|
+
@body body: float64;
|
|
493
|
+
@header contentType: "text/plain";
|
|
494
|
+
}>;
|
|
495
|
+
},
|
|
496
|
+
): NoContentResponse;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
}
|