@typespec/http-specs 0.1.0-alpha.0
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 +33 -0
- package/dist/specs/authentication/api-key/mockapi.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 +33 -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 +30 -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 +29 -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 +167 -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 +103 -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 +22 -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 +20 -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 +50 -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 +76 -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 +155 -0
- package/dist/specs/parameters/spread/mockapi.js.map +1 -0
- package/dist/specs/payload/content-negotiation/mockapi.d.ts +3 -0
- package/dist/specs/payload/content-negotiation/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/content-negotiation/mockapi.js +169 -0
- package/dist/specs/payload/content-negotiation/mockapi.js.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts +38 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js +90 -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 +59 -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 +323 -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 +183 -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 +94 -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 +20 -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 +12 -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 +21 -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 +12 -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 +42 -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 +43 -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 +55 -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 +223 -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 +92 -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 +91 -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 +39 -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 +42 -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 +37 -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 +69 -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 +127 -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 +37 -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 +40 -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 +99 -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 +63 -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 +41 -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 +107 -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 +333 -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 +132 -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 +185 -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 +214 -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 +193 -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 +106 -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 +54 -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 +17 -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 +19 -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 +38 -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 +18 -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 +21 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
- package/package.json +55 -0
- package/spec-summary.md +7463 -0
- package/specs/README.md +3 -0
- package/specs/authentication/api-key/main.tsp +40 -0
- package/specs/authentication/api-key/mockapi.ts +35 -0
- package/specs/authentication/http/custom/main.tsp +40 -0
- package/specs/authentication/http/custom/mockapi.ts +35 -0
- package/specs/authentication/oauth2/main.tsp +45 -0
- package/specs/authentication/oauth2/mockapi.ts +32 -0
- package/specs/authentication/union/main.tsp +30 -0
- package/specs/authentication/union/mockapi.ts +31 -0
- package/specs/encode/bytes/main.tsp +363 -0
- package/specs/encode/bytes/mockapi.ts +297 -0
- package/specs/encode/datetime/main.tsp +339 -0
- package/specs/encode/datetime/mockapi.ts +274 -0
- package/specs/encode/duration/main.tsp +318 -0
- package/specs/encode/duration/mockapi.ts +191 -0
- package/specs/encode/numeric/main.tsp +69 -0
- package/specs/encode/numeric/mockapi.ts +32 -0
- package/specs/helper.ts +8 -0
- package/specs/parameters/basic/main.tsp +58 -0
- package/specs/parameters/basic/mockapi.ts +25 -0
- package/specs/parameters/body-optionality/main.tsp +61 -0
- package/specs/parameters/body-optionality/mockapi.ts +59 -0
- package/specs/parameters/collection-format/main.tsp +92 -0
- package/specs/parameters/collection-format/mockapi.ts +83 -0
- package/specs/parameters/spread/main.tsp +337 -0
- package/specs/parameters/spread/mockapi.ts +165 -0
- package/specs/payload/content-negotiation/main.tsp +61 -0
- package/specs/payload/content-negotiation/mockapi.ts +188 -0
- package/specs/payload/json-merge-patch/main.tsp +184 -0
- package/specs/payload/json-merge-patch/mockapi.ts +95 -0
- package/specs/payload/media-type/main.tsp +52 -0
- package/specs/payload/media-type/mockapi.ts +63 -0
- package/specs/payload/multipart/main.tsp +500 -0
- package/specs/payload/multipart/mockapi.ts +364 -0
- package/specs/payload/xml/main.tsp +302 -0
- package/specs/payload/xml/mockapi.ts +238 -0
- package/specs/routes/main.tsp +477 -0
- package/specs/routes/mockapi.ts +175 -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 +22 -0
- package/specs/server/endpoint/not-defined/main.tsp +20 -0
- package/specs/server/endpoint/not-defined/mockapi.ts +13 -0
- package/specs/server/path/multiple/main.tsp +47 -0
- package/specs/server/path/multiple/mockapi.ts +23 -0
- package/specs/server/path/single/main.tsp +24 -0
- package/specs/server/path/single/mockapi.ts +13 -0
- package/specs/server/versions/not-versioned/main.tsp +40 -0
- package/specs/server/versions/not-versioned/mockapi.ts +51 -0
- package/specs/server/versions/versioned/main.tsp +64 -0
- package/specs/server/versions/versioned/mockapi.ts +64 -0
- package/specs/special-headers/conditional-request/main.tsp +89 -0
- package/specs/special-headers/conditional-request/mockapi.ts +59 -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 +234 -0
- package/specs/special-words/mockapi.ts +384 -0
- package/specs/type/array/main.tsp +108 -0
- package/specs/type/array/mockapi.ts +107 -0
- package/specs/type/dictionary/main.tsp +101 -0
- package/specs/type/dictionary/mockapi.ts +103 -0
- package/specs/type/enum/extensible/main.tsp +65 -0
- package/specs/type/enum/extensible/mockapi.ts +48 -0
- package/specs/type/enum/fixed/main.tsp +60 -0
- package/specs/type/enum/fixed/mockapi.ts +44 -0
- package/specs/type/model/empty/main.tsp +40 -0
- package/specs/type/model/empty/mockapi.ts +40 -0
- package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
- package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +89 -0
- package/specs/type/model/inheritance/nested-discriminator/main.tsp +224 -0
- package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +130 -0
- package/specs/type/model/inheritance/not-discriminated/main.tsp +54 -0
- package/specs/type/model/inheritance/not-discriminated/mockapi.ts +39 -0
- package/specs/type/model/inheritance/recursive/main.tsp +71 -0
- package/specs/type/model/inheritance/recursive/mockapi.ts +41 -0
- package/specs/type/model/inheritance/single-discriminator/main.tsp +172 -0
- package/specs/type/model/inheritance/single-discriminator/mockapi.ts +103 -0
- package/specs/type/model/templated/main.tsp +130 -0
- package/specs/type/model/templated/mockapi.ts +66 -0
- package/specs/type/model/usage/main.tsp +49 -0
- package/specs/type/model/usage/mockapi.ts +45 -0
- package/specs/type/model/visibility/main.tsp +153 -0
- package/specs/type/model/visibility/mockapi.ts +108 -0
- package/specs/type/property/additional-properties/main.tsp +549 -0
- package/specs/type/property/additional-properties/mockapi.ts +464 -0
- package/specs/type/property/nullable/main.tsp +139 -0
- package/specs/type/property/nullable/mockapi.ts +187 -0
- package/specs/type/property/optionality/main.tsp +226 -0
- package/specs/type/property/optionality/mockapi.ts +296 -0
- package/specs/type/property/value-types/main.tsp +244 -0
- package/specs/type/property/value-types/mockapi.ts +300 -0
- package/specs/type/scalar/main.tsp +136 -0
- package/specs/type/scalar/mockapi.ts +199 -0
- package/specs/type/union/main.tsp +249 -0
- package/specs/type/union/mockapi.ts +130 -0
- package/specs/versioning/added/main.tsp +136 -0
- package/specs/versioning/added/mockapi.ts +57 -0
- package/specs/versioning/madeOptional/main.tsp +65 -0
- package/specs/versioning/madeOptional/mockapi.ts +18 -0
- package/specs/versioning/removed/main.tsp +126 -0
- package/specs/versioning/removed/mockapi.ts +20 -0
- package/specs/versioning/renamedFrom/main.tsp +112 -0
- package/specs/versioning/renamedFrom/mockapi.ts +40 -0
- package/specs/versioning/returnTypeChangedFrom/main.tsp +57 -0
- package/specs/versioning/returnTypeChangedFrom/mockapi.ts +19 -0
- package/specs/versioning/typeChangedFrom/main.tsp +71 -0
- package/specs/versioning/typeChangedFrom/mockapi.ts +22 -0
- package/temp/.tsbuildinfo +1 -0
- package/tsconfig.build.json +8 -0
- package/tsconfig.json +11 -0
- package/tspconfig.yaml +2 -0
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spector";
|
|
3
|
+
|
|
4
|
+
using Http;
|
|
5
|
+
using Spector;
|
|
6
|
+
|
|
7
|
+
@doc("Test for the spread operator.")
|
|
8
|
+
@scenarioService("/parameters/spread")
|
|
9
|
+
namespace Parameters.Spread;
|
|
10
|
+
|
|
11
|
+
@route("/model")
|
|
12
|
+
namespace Model {
|
|
13
|
+
@doc("This is a simple model.")
|
|
14
|
+
model BodyParameter {
|
|
15
|
+
name: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@scenario
|
|
19
|
+
@scenarioDoc("""
|
|
20
|
+
Test case for spread named model.
|
|
21
|
+
|
|
22
|
+
Should not generate request body model named `BodyParameter`.
|
|
23
|
+
Should generate an operation like below:
|
|
24
|
+
```
|
|
25
|
+
spreadAsRequestBody(name: string)
|
|
26
|
+
```
|
|
27
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
28
|
+
|
|
29
|
+
Expected request body:
|
|
30
|
+
```json
|
|
31
|
+
{ "name": "foo" }
|
|
32
|
+
```
|
|
33
|
+
""")
|
|
34
|
+
@route("/request-body")
|
|
35
|
+
@put
|
|
36
|
+
op spreadAsRequestBody(...BodyParameter): NoContentResponse;
|
|
37
|
+
|
|
38
|
+
@doc("This is a model only with `@body` property.")
|
|
39
|
+
model CompositeRequestOnlyWithBody {
|
|
40
|
+
@body body: BodyParameter;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@scenario
|
|
44
|
+
@scenarioDoc("""
|
|
45
|
+
Test case for spread model only with `@body` property.
|
|
46
|
+
|
|
47
|
+
Should generate request body model named `BodyParameter`.
|
|
48
|
+
Should not generate model named `CompositeRequestOnlyWithBody`.
|
|
49
|
+
Should generate an operation like below:
|
|
50
|
+
```
|
|
51
|
+
spreadCompositeRequestOnlyWithBody(bodyParameter: BodyParameter)
|
|
52
|
+
```
|
|
53
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
54
|
+
|
|
55
|
+
Expected request body:
|
|
56
|
+
```json
|
|
57
|
+
{ "name": "foo" }
|
|
58
|
+
```
|
|
59
|
+
""")
|
|
60
|
+
@route("/composite-request-only-with-body")
|
|
61
|
+
@put
|
|
62
|
+
op spreadCompositeRequestOnlyWithBody(...CompositeRequestOnlyWithBody): NoContentResponse;
|
|
63
|
+
|
|
64
|
+
@doc("This is a model without `@body` property.")
|
|
65
|
+
model CompositeRequestWithoutBody {
|
|
66
|
+
@path
|
|
67
|
+
name: string;
|
|
68
|
+
|
|
69
|
+
@header
|
|
70
|
+
testHeader: string;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@scenario
|
|
74
|
+
@scenarioDoc("""
|
|
75
|
+
Test case for spread model without `@body` property.
|
|
76
|
+
|
|
77
|
+
Should not generate model named `CompositeRequestOnlyWithBody`.
|
|
78
|
+
Should generate an operation like below:
|
|
79
|
+
```
|
|
80
|
+
spreadCompositeRequestWithoutBody(name: string, testHeader: string)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Expected path parameter: name="foo"
|
|
84
|
+
Expected header parameter: testHeader="bar"
|
|
85
|
+
""")
|
|
86
|
+
@route("/composite-request-without-body/{name}")
|
|
87
|
+
@put
|
|
88
|
+
op spreadCompositeRequestWithoutBody(...CompositeRequestWithoutBody): NoContentResponse;
|
|
89
|
+
|
|
90
|
+
@doc("This is a model with all http request decorator.")
|
|
91
|
+
model CompositeRequest {
|
|
92
|
+
@path
|
|
93
|
+
name: string;
|
|
94
|
+
|
|
95
|
+
@header
|
|
96
|
+
testHeader: string;
|
|
97
|
+
|
|
98
|
+
@body
|
|
99
|
+
body: BodyParameter;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@scenario
|
|
103
|
+
@scenarioDoc("""
|
|
104
|
+
Test case for spread model with all http request decorator.
|
|
105
|
+
|
|
106
|
+
Should generate request body model named `BodyParameter`.
|
|
107
|
+
Should not generate model named `CompositeRequest`.
|
|
108
|
+
Should generate an operation like below:
|
|
109
|
+
```
|
|
110
|
+
spreadCompositeRequest(name: string, testHeader: string, bodyParameter: BodyParameter)
|
|
111
|
+
```
|
|
112
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
113
|
+
|
|
114
|
+
Expected path parameter: name="foo"
|
|
115
|
+
Expected header parameter: testHeader="bar"
|
|
116
|
+
Expected request body:
|
|
117
|
+
```json
|
|
118
|
+
{ "name": "foo" }
|
|
119
|
+
```
|
|
120
|
+
""")
|
|
121
|
+
@route("/composite-request/{name}")
|
|
122
|
+
@put
|
|
123
|
+
op spreadCompositeRequest(...CompositeRequest): NoContentResponse;
|
|
124
|
+
|
|
125
|
+
@doc("This is a model with non-body http request decorator.")
|
|
126
|
+
model CompositeRequestMix {
|
|
127
|
+
@path
|
|
128
|
+
name: string;
|
|
129
|
+
|
|
130
|
+
@header
|
|
131
|
+
testHeader: string;
|
|
132
|
+
|
|
133
|
+
prop: string;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@scenario
|
|
137
|
+
@scenarioDoc("""
|
|
138
|
+
Test case for spread model with non-body http request decorator.
|
|
139
|
+
|
|
140
|
+
Should not generate model named `CompositeRequestMix`.
|
|
141
|
+
Should generate an operation like below:
|
|
142
|
+
```
|
|
143
|
+
spreadCompositeRequestMix(name: string, testHeader: string, prop: string)
|
|
144
|
+
```
|
|
145
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
146
|
+
|
|
147
|
+
Expected path parameter: name="foo"
|
|
148
|
+
Expected header parameter: testHeader="bar"
|
|
149
|
+
Expected request body:
|
|
150
|
+
```json
|
|
151
|
+
{ "prop": "foo" }
|
|
152
|
+
```
|
|
153
|
+
""")
|
|
154
|
+
@route("/composite-request-mix/{name}")
|
|
155
|
+
@put
|
|
156
|
+
op spreadCompositeRequestMix(...CompositeRequestMix): NoContentResponse;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@route("/alias")
|
|
160
|
+
namespace Alias {
|
|
161
|
+
alias BodyParameter = {
|
|
162
|
+
name: string;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
@scenario
|
|
166
|
+
@scenarioDoc("""
|
|
167
|
+
Test case for spread alias.
|
|
168
|
+
|
|
169
|
+
Should not generate any model named `BodyParameter`.
|
|
170
|
+
Should generate an operation like:
|
|
171
|
+
```
|
|
172
|
+
spreadAsRequestBody(name: string)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Expected request body:
|
|
176
|
+
```json
|
|
177
|
+
{ "name": "foo" }
|
|
178
|
+
```
|
|
179
|
+
""")
|
|
180
|
+
@route("/request-body")
|
|
181
|
+
@put
|
|
182
|
+
op spreadAsRequestBody(...BodyParameter): NoContentResponse;
|
|
183
|
+
|
|
184
|
+
model InnerModel {
|
|
185
|
+
name: string;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
alias InnerModelParameter = {
|
|
189
|
+
@path
|
|
190
|
+
id: string;
|
|
191
|
+
|
|
192
|
+
...InnerModel;
|
|
193
|
+
|
|
194
|
+
@header
|
|
195
|
+
`x-ms-test-header`: string;
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
@scenario
|
|
199
|
+
@scenarioDoc("""
|
|
200
|
+
Test case for spread alias.
|
|
201
|
+
|
|
202
|
+
Should not generate any model named `InnerModel`.
|
|
203
|
+
Should not generate any model named `InnerModelParameter`.
|
|
204
|
+
Should generate an operation like:
|
|
205
|
+
```
|
|
206
|
+
spreadParameterWithInnerModel(id: string, x_ms_test_header: string, name: string)
|
|
207
|
+
```
|
|
208
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
209
|
+
|
|
210
|
+
Expected path parameter: id="1"
|
|
211
|
+
Expected header parameter: x-ms-test-header="bar"
|
|
212
|
+
Expected request body:
|
|
213
|
+
```json
|
|
214
|
+
{ "name": "foo" }
|
|
215
|
+
```
|
|
216
|
+
""")
|
|
217
|
+
@route("/inner-model-parameter/{id}")
|
|
218
|
+
@post
|
|
219
|
+
op spreadParameterWithInnerModel(...InnerModelParameter): NoContentResponse;
|
|
220
|
+
|
|
221
|
+
alias RequestParameter = {
|
|
222
|
+
@path
|
|
223
|
+
id: string;
|
|
224
|
+
|
|
225
|
+
@header
|
|
226
|
+
`x-ms-test-header`: string;
|
|
227
|
+
|
|
228
|
+
name: string;
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
@scenario
|
|
232
|
+
@scenarioDoc("""
|
|
233
|
+
Test case for spread alias with path and header parameter.
|
|
234
|
+
|
|
235
|
+
Should not generate any model named `RequestParameter`.
|
|
236
|
+
Should generate an operation like below:
|
|
237
|
+
```
|
|
238
|
+
spreadAsRequestParameter(id: string, x_ms_test_header: string, name: string)
|
|
239
|
+
```
|
|
240
|
+
Note the parameter name may be normalized and vary by language.
|
|
241
|
+
|
|
242
|
+
Expected path parameter: id="1"
|
|
243
|
+
Expected header parameter: x-ms-test-header="bar"
|
|
244
|
+
Expected request body:
|
|
245
|
+
```json
|
|
246
|
+
{ "name": "foo" }
|
|
247
|
+
```
|
|
248
|
+
""")
|
|
249
|
+
@route("/request-parameter/{id}")
|
|
250
|
+
@put
|
|
251
|
+
op spreadAsRequestParameter(...RequestParameter): NoContentResponse;
|
|
252
|
+
|
|
253
|
+
alias MultipleRequestParameters = {
|
|
254
|
+
@path
|
|
255
|
+
id: string;
|
|
256
|
+
|
|
257
|
+
@header
|
|
258
|
+
`x-ms-test-header`: string;
|
|
259
|
+
|
|
260
|
+
/** required string */
|
|
261
|
+
requiredString: string;
|
|
262
|
+
|
|
263
|
+
/** optional int */
|
|
264
|
+
optionalInt?: int32;
|
|
265
|
+
|
|
266
|
+
/** required int */
|
|
267
|
+
requiredIntList: int32[];
|
|
268
|
+
|
|
269
|
+
/** optional string */
|
|
270
|
+
optionalStringList?: string[];
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
@scenario
|
|
274
|
+
@scenarioDoc("""
|
|
275
|
+
Test case for spread alias including 6 parameters. May handle as property bag for these parameters.
|
|
276
|
+
|
|
277
|
+
Should not generate any model named `MultipleRequestParameters`.
|
|
278
|
+
Since it contains both optional properties and required properties, the method signature might vary across different languages.
|
|
279
|
+
Note it's also acceptable if some languages handle it as property bag.
|
|
280
|
+
|
|
281
|
+
Expected path parameter: id="1"
|
|
282
|
+
Expected header parameter: x-ms-test-header="bar"
|
|
283
|
+
Expected request body:
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"requiredString": "foo",
|
|
287
|
+
"optionalInt": 1,
|
|
288
|
+
"requiredIntList": [1, 2],
|
|
289
|
+
"optionalStringList": ["foo", "bar"]
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
""")
|
|
293
|
+
@route("/multiple-parameters/{id}")
|
|
294
|
+
@put
|
|
295
|
+
op spreadWithMultipleParameters(...MultipleRequestParameters): NoContentResponse;
|
|
296
|
+
|
|
297
|
+
alias InnerAlias = {
|
|
298
|
+
@doc("name of the Thing")
|
|
299
|
+
name: string;
|
|
300
|
+
|
|
301
|
+
@doc("age of the Thing")
|
|
302
|
+
age: int32;
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
alias InnerAliasParameter = {
|
|
306
|
+
@path id: string;
|
|
307
|
+
...InnerAlias;
|
|
308
|
+
|
|
309
|
+
@header
|
|
310
|
+
`x-ms-test-header`: string;
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
@scenario
|
|
314
|
+
@scenarioDoc("""
|
|
315
|
+
Test case for spread alias with contains another alias property as body.
|
|
316
|
+
|
|
317
|
+
Should not generate any model named `InnerAlias` and `InnerAliasParameter`.
|
|
318
|
+
Should generate an operation like below:
|
|
319
|
+
```
|
|
320
|
+
spreadParameterWithInnerAlias(id: string, name: string, age: int32, x_ms_test_header: string)
|
|
321
|
+
```
|
|
322
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
323
|
+
Expected path parameter: id="1"
|
|
324
|
+
Expected header parameter: x-ms-test-header="bar"
|
|
325
|
+
Expected request body:
|
|
326
|
+
```json
|
|
327
|
+
{
|
|
328
|
+
"name": "foo",
|
|
329
|
+
"age": 1
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
|
+
""")
|
|
333
|
+
@route("/inner-alias-parameter")
|
|
334
|
+
@doc("spread an alias with contains another alias property as body.")
|
|
335
|
+
@post
|
|
336
|
+
op spreadParameterWithInnerAlias(...InnerAliasParameter): NoContentResponse;
|
|
337
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Parameters_Spread_Model_spreadAsRequestBody = passOnSuccess({
|
|
6
|
+
uri: `/parameters/spread/model/request-body`,
|
|
7
|
+
method: "put",
|
|
8
|
+
request: {
|
|
9
|
+
body: {
|
|
10
|
+
name: "foo",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
kind: "MockApiDefinition",
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
Scenarios.Parameters_Spread_Model_spreadCompositeRequestOnlyWithBody = passOnSuccess({
|
|
20
|
+
uri: `/parameters/spread/model/composite-request-only-with-body`,
|
|
21
|
+
method: "put",
|
|
22
|
+
request: {
|
|
23
|
+
body: {
|
|
24
|
+
name: "foo",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
response: {
|
|
28
|
+
status: 204,
|
|
29
|
+
},
|
|
30
|
+
kind: "MockApiDefinition",
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
Scenarios.Parameters_Spread_Model_spreadCompositeRequestWithoutBody = passOnSuccess({
|
|
34
|
+
uri: `/parameters/spread/model/composite-request-without-body/foo`,
|
|
35
|
+
method: "put",
|
|
36
|
+
request: {
|
|
37
|
+
headers: {
|
|
38
|
+
"test-header": "bar",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
response: {
|
|
42
|
+
status: 204,
|
|
43
|
+
},
|
|
44
|
+
kind: "MockApiDefinition",
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
Scenarios.Parameters_Spread_Model_spreadCompositeRequest = passOnSuccess({
|
|
48
|
+
uri: `/parameters/spread/model/composite-request/foo`,
|
|
49
|
+
method: "put",
|
|
50
|
+
request: {
|
|
51
|
+
body: {
|
|
52
|
+
name: "foo",
|
|
53
|
+
},
|
|
54
|
+
headers: {
|
|
55
|
+
"test-header": "bar",
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
response: {
|
|
59
|
+
status: 204,
|
|
60
|
+
},
|
|
61
|
+
kind: "MockApiDefinition",
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
Scenarios.Parameters_Spread_Model_spreadCompositeRequestMix = passOnSuccess({
|
|
65
|
+
uri: `/parameters/spread/model/composite-request-mix/foo`,
|
|
66
|
+
method: "put",
|
|
67
|
+
request: {
|
|
68
|
+
body: {
|
|
69
|
+
prop: "foo",
|
|
70
|
+
},
|
|
71
|
+
headers: {
|
|
72
|
+
"test-header": "bar",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
response: {
|
|
76
|
+
status: 204,
|
|
77
|
+
},
|
|
78
|
+
kind: "MockApiDefinition",
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
Scenarios.Parameters_Spread_Alias_spreadAsRequestBody = passOnSuccess({
|
|
82
|
+
uri: `/parameters/spread/alias/request-body`,
|
|
83
|
+
method: "put",
|
|
84
|
+
request: {
|
|
85
|
+
body: {
|
|
86
|
+
name: "foo",
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
response: {
|
|
90
|
+
status: 204,
|
|
91
|
+
},
|
|
92
|
+
kind: "MockApiDefinition",
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
Scenarios.Parameters_Spread_Alias_spreadAsRequestParameter = passOnSuccess({
|
|
96
|
+
uri: `/parameters/spread/alias/request-parameter/1`,
|
|
97
|
+
method: "put",
|
|
98
|
+
request: {
|
|
99
|
+
body: {
|
|
100
|
+
name: "foo",
|
|
101
|
+
},
|
|
102
|
+
headers: {
|
|
103
|
+
"x-ms-test-header": "bar",
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
response: {
|
|
107
|
+
status: 204,
|
|
108
|
+
},
|
|
109
|
+
kind: "MockApiDefinition",
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
Scenarios.Parameters_Spread_Alias_spreadWithMultipleParameters = passOnSuccess({
|
|
113
|
+
uri: `/parameters/spread/alias/multiple-parameters/1`,
|
|
114
|
+
method: "put",
|
|
115
|
+
request: {
|
|
116
|
+
body: {
|
|
117
|
+
requiredString: "foo",
|
|
118
|
+
optionalInt: 1,
|
|
119
|
+
requiredIntList: [1, 2],
|
|
120
|
+
optionalStringList: ["foo", "bar"],
|
|
121
|
+
},
|
|
122
|
+
headers: {
|
|
123
|
+
"x-ms-test-header": "bar",
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
response: {
|
|
127
|
+
status: 204,
|
|
128
|
+
},
|
|
129
|
+
kind: "MockApiDefinition",
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
Scenarios.Parameters_Spread_Alias_spreadParameterWithInnerModel = passOnSuccess({
|
|
133
|
+
uri: `/parameters/spread/alias/inner-model-parameter/1`,
|
|
134
|
+
method: "post",
|
|
135
|
+
request: {
|
|
136
|
+
body: {
|
|
137
|
+
name: "foo",
|
|
138
|
+
},
|
|
139
|
+
headers: {
|
|
140
|
+
"x-ms-test-header": "bar",
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
response: {
|
|
144
|
+
status: 204,
|
|
145
|
+
},
|
|
146
|
+
kind: "MockApiDefinition",
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
Scenarios.Parameters_Spread_Alias_spreadParameterWithInnerAlias = passOnSuccess({
|
|
150
|
+
uri: `/parameters/spread/alias/inner-alias-parameter/1`,
|
|
151
|
+
method: "post",
|
|
152
|
+
request: {
|
|
153
|
+
body: {
|
|
154
|
+
name: "foo",
|
|
155
|
+
age: 1,
|
|
156
|
+
},
|
|
157
|
+
headers: {
|
|
158
|
+
"x-ms-test-header": "bar",
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
response: {
|
|
162
|
+
status: 204,
|
|
163
|
+
},
|
|
164
|
+
kind: "MockApiDefinition",
|
|
165
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spector";
|
|
3
|
+
|
|
4
|
+
using Http;
|
|
5
|
+
using Spector;
|
|
6
|
+
|
|
7
|
+
@doc("Test describing optionality of the request body.")
|
|
8
|
+
@scenarioService("/content-negotiation")
|
|
9
|
+
namespace Payload.ContentNegotiation;
|
|
10
|
+
|
|
11
|
+
@scenario
|
|
12
|
+
@scenarioDoc("""
|
|
13
|
+
Scenario that returns a different file encoding depending on the accept header.
|
|
14
|
+
|
|
15
|
+
- image/png return a png image
|
|
16
|
+
- image/jpeg return a jpeg image
|
|
17
|
+
""")
|
|
18
|
+
@route("same-body")
|
|
19
|
+
namespace SameBody {
|
|
20
|
+
model PngImage {
|
|
21
|
+
@header contentType: "image/png";
|
|
22
|
+
@body image: bytes;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
model JpegImage {
|
|
26
|
+
@header contentType: "image/jpeg";
|
|
27
|
+
@body image: bytes;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@sharedRoute
|
|
31
|
+
op getAvatarAsPng(@header accept: "image/png"): PngImage;
|
|
32
|
+
|
|
33
|
+
@sharedRoute
|
|
34
|
+
op getAvatarAsJpeg(@header accept: "image/jpeg"): JpegImage;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@scenario
|
|
38
|
+
@scenarioDoc("""
|
|
39
|
+
Scenario that a different payload depending on the accept header.
|
|
40
|
+
|
|
41
|
+
- application/json return a png image in a Json object
|
|
42
|
+
- image/png return the png image
|
|
43
|
+
""")
|
|
44
|
+
@route("different-body")
|
|
45
|
+
namespace DifferentBody {
|
|
46
|
+
model PngImage {
|
|
47
|
+
@header contentType: "image/png";
|
|
48
|
+
@body image: bytes;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
model PngImageAsJson {
|
|
52
|
+
@header contentType: "application/json";
|
|
53
|
+
content: bytes;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@sharedRoute
|
|
57
|
+
op getAvatarAsPng(@header accept: "image/png"): PngImage;
|
|
58
|
+
|
|
59
|
+
@sharedRoute
|
|
60
|
+
op getAvatarAsJson(@header accept: "application/json"): PngImageAsJson;
|
|
61
|
+
}
|