@loopback/openapi-v3 1.13.0 → 2.0.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 CHANGED
@@ -3,6 +3,101 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.0.0](https://github.com/strongloop/loopback-next/compare/@loopback/openapi-v3@1.13.0...@loopback/openapi-v3@2.0.0) (2020-02-06)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * suport complex objects for query params in api explorer ([a4ef640](https://github.com/strongloop/loopback-next/commit/a4ef64037a80d1ff7df37ba7912909a1bfcdbf51))
12
+
13
+
14
+ ### BREAKING CHANGES
15
+
16
+ * This fix has modified the api definitions described by the decorator
17
+ 'param.query.object', to support Open-API's `url-encoded` definition for json query
18
+ parameters.
19
+
20
+ Previously, such parameters were described with `exploded: true` and
21
+ `style: deepObject`, i.e exploded encoding, which turned out to be problematic as explained and discussed in,
22
+ https://github.com/swagger-api/swagger-js/issues/1385 and
23
+ https://github.com/OAI/OpenAPI-Specification/issues/1706
24
+
25
+ ```json
26
+ {
27
+ "in": "query",
28
+ "style": "deepObject"
29
+ "explode": "true",
30
+ "schema": {}
31
+ }
32
+ ```
33
+
34
+ Exploded encoding worked for simple json objects as below but not for complex objects.
35
+
36
+ ```
37
+ http://localhost:3000/todos?filter[limit]=2
38
+ ```
39
+
40
+ To address these issues with exploded queries, this fix switches definition of json
41
+ query params from the `exploded`, `deep-object` style to the `url-encoded` style
42
+ definition in Open-API spec.
43
+
44
+ LoopBack already supports receiving url-encoded payload for json query parameters.
45
+
46
+ For instance, to filter api results from the GET '/todo-list' endpoint in the
47
+ todo-list example with a specific relation, { "include": [ { "relation": "todo" } ] },
48
+ the following url-encoded query parameter can be used,
49
+
50
+ ```
51
+ http://localhost:3000/todos?filter=%7B%22include%22%3A%5B%7B%22relation%22%3A%22todoList%22%7D%5D%7D
52
+ ```
53
+
54
+ The above was possible because the coercion behavior in LoopBack performed json
55
+ parsing for `deep object` style json query params before this fix. This fix has
56
+ modified that behavior by removing json parsing. Since the `exploded` `deep-object`
57
+ definition has been removed from the `param.query.object` decorator, this new
58
+ behaviour remains just an internal source code aspect as of now.
59
+
60
+ In effect, this fix only modifies the open api definitions generated from LoopBack
61
+ APIs. The 'style' and 'explode' fields are removed and the 'schema' field is moved
62
+ under 'content[application/json]'. This is the definition that supports url-encoding
63
+ as per Open-API spec.
64
+
65
+ ```json
66
+ {
67
+ "in": "query"
68
+ "content": {
69
+ "application/json": {
70
+ "schema": {}
71
+ }
72
+ }
73
+ }
74
+ ```
75
+
76
+ Certain client libraries (like swagger-ui or LoopBack's api explorer) necessiate
77
+ using Open-API's `url-encoded` style definition for json query params to support
78
+ "sending" url-encoded payload.
79
+
80
+ All consumers of LoopBack APIs may need to regenerate api definitions, if their
81
+ client libraries require them to do so for url-encoding.
82
+
83
+ Otherwise there wouldn't be any significant impact on API consumers.
84
+
85
+ To preserve compatibility with existing REST API clients, this change is backward
86
+ compatible. All exploded queries like `?filter[limit]=1` will continue to work for
87
+ json query params, despite the fact that they are described differently in the
88
+ OpenAPI spec.
89
+
90
+ Existing api clients will continue to work after an upgrade.
91
+
92
+ The signature of the 'param.query.object' decorator has not changed.
93
+
94
+ There is no code changes required in the LoopBack APIs after upgrading to this
95
+ fix. No method signatures or data structures are impacted.
96
+
97
+
98
+
99
+
100
+
6
101
  # [1.13.0](https://github.com/strongloop/loopback-next/compare/@loopback/openapi-v3@1.12.0...@loopback/openapi-v3@1.13.0) (2020-02-05)
7
102
 
8
103
 
@@ -41,8 +41,11 @@ function param(paramSpec) {
41
41
  !paramSpec.schema ||
42
42
  // generate schema if `paramSpec` has `schema` but without `type`
43
43
  (types_1.isSchemaObject(paramSpec.schema) && !paramSpec.schema.type)) {
44
- // please note `resolveSchema` only adds `type` and `format` for `schema`
45
- paramSpec.schema = generate_schema_1.resolveSchema(paramType, paramSpec.schema);
44
+ // If content explicitly mentioned do not resolve schema
45
+ if (!paramSpec.content) {
46
+ // please note `resolveSchema` only adds `type` and `format` for `schema`
47
+ paramSpec.schema = generate_schema_1.resolveSchema(paramType, paramSpec.schema);
48
+ }
46
49
  }
47
50
  }
48
51
  if (paramSpec.schema &&
@@ -181,7 +184,11 @@ const builtinTypes = {
181
184
  additionalProperties: true,
182
185
  }, spec) {
183
186
  schema = Object.assign({ type: 'object' }, schema);
184
- return param(Object.assign({ name, in: 'query', style: 'deepObject', explode: true, schema }, spec));
187
+ return param(Object.assign({ name, in: 'query', content: {
188
+ 'application/json': {
189
+ schema,
190
+ },
191
+ } }, spec));
185
192
  },
186
193
  };
187
194
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"parameter.decorator.js","sourceRoot":"","sources":["../../src/decorators/parameter.decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameter.decorator.js","sourceRoot":"","sources":["../../src/decorators/parameter.decorator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@loopback/openapi-v3",
3
- "version": "1.13.0",
3
+ "version": "2.0.0",
4
4
  "description": "Processes openapi v3 related metadata",
5
5
  "engines": {
6
6
  "node": ">=8.9"
7
7
  },
8
8
  "dependencies": {
9
- "@loopback/core": "^1.12.3",
10
- "@loopback/repository-json-schema": "^1.12.1",
9
+ "@loopback/core": "^1.12.4",
10
+ "@loopback/repository-json-schema": "^1.12.2",
11
11
  "debug": "^4.1.1",
12
12
  "json-merge-patch": "^0.2.3",
13
13
  "lodash": "^4.17.15",
@@ -17,7 +17,7 @@
17
17
  "@loopback/build": "^3.1.1",
18
18
  "@loopback/eslint-config": "^5.0.3",
19
19
  "@loopback/openapi-spec-builder": "^1.3.1",
20
- "@loopback/repository": "^1.19.0",
20
+ "@loopback/repository": "^1.19.1",
21
21
  "@loopback/testlab": "^1.10.3",
22
22
  "@types/debug": "^4.1.5",
23
23
  "@types/lodash": "^4.14.149",
@@ -56,5 +56,5 @@
56
56
  "url": "https://github.com/strongloop/loopback-next.git",
57
57
  "directory": "packages/openapi-v3"
58
58
  },
59
- "gitHead": "b5e53892d327c6cf4c6023055d2b38f13fe4729e"
59
+ "gitHead": "6eea5e428b145cafb84a998bd53979da8c8fba07"
60
60
  }
@@ -50,8 +50,11 @@ export function param(paramSpec: ParameterObject) {
50
50
  // generate schema if `paramSpec` has `schema` but without `type`
51
51
  (isSchemaObject(paramSpec.schema) && !paramSpec.schema.type)
52
52
  ) {
53
- // please note `resolveSchema` only adds `type` and `format` for `schema`
54
- paramSpec.schema = resolveSchema(paramType, paramSpec.schema);
53
+ // If content explicitly mentioned do not resolve schema
54
+ if (!paramSpec.content) {
55
+ // please note `resolveSchema` only adds `type` and `format` for `schema`
56
+ paramSpec.schema = resolveSchema(paramType, paramSpec.schema);
57
+ }
55
58
  }
56
59
  }
57
60
 
@@ -212,9 +215,11 @@ export namespace param {
212
215
  return param({
213
216
  name,
214
217
  in: 'query',
215
- style: 'deepObject',
216
- explode: true,
217
- schema,
218
+ content: {
219
+ 'application/json': {
220
+ schema,
221
+ },
222
+ },
218
223
  ...spec,
219
224
  });
220
225
  },