swagui 0.4.1 → 0.5.1
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.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/swagui/json_schema.rb +1 -1
- data/lib/swagui/version.rb +1 -1
- data/swagger-ui/lib/swagger.js +5 -1
- data/test/doc/schemas/account_get_request_body.schema.json +9 -0
- data/test/test_json_schema.rb +5 -5
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6283c63492294c679588387d93c8617c67d96d80
|
4
|
+
data.tar.gz: 175c97e8b663689735910c234db51c3a887bf179
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85328db2dcd3ad910dc884915dd485f238eabeb5e68f273783ce142b1c04da6d86de6d39e8e70cffc6fa7cf1627df59e104c3275f612ce25900f367d172c1f18
|
7
|
+
data.tar.gz: 0218d3fef78074e8602d1bcd2ab49fbf6d5441c25521ee089ee9948c52bc9098a882d3cffa303abd3cacd6b5b80a026c19bbe84f27039e2677c42dec5a2fc54a
|
data/README.md
CHANGED
@@ -54,6 +54,7 @@ You will be able to access the [swagger-ui] loaded with your api documentation a
|
|
54
54
|
consumes:
|
55
55
|
- application/json
|
56
56
|
```
|
57
|
+
5. __example value__: in current swagger ui, according to [swagui ui default value code], the render json structure is displayed with some empty values, such as `0`, `0.0`, `""`, etc, depends on the data type. This could make it hard to visualize how the json structure really looks like. Swagui provides an optional `example` attribute for each property, for the sample value that populates the json display.
|
57
58
|
|
58
59
|
With this approach, swagger api docs are now a lot more concise and readible, let alone having dynamic `basePath`.
|
59
60
|
|
@@ -117,6 +118,7 @@ You will then able to view the [swagger-ui] loaded with your api documentation a
|
|
117
118
|
|
118
119
|
[swagger-ui]: https://github.com/wordnik/swagger-ui
|
119
120
|
[original swagger doc format]: https://github.com/wordnik/swagger-spec/blob/master/fixtures/v1.2/helloworld/static/api-docs
|
121
|
+
[swagui ui default value code]: https://github.com/wordnik/swagger-ui/blob/6b448c1faecc5816d90de41ee6e90bb6322816c1/dist/lib/swagger.js#L660-L676
|
120
122
|
## Contributing
|
121
123
|
|
122
124
|
1. Fork it ( https://github.com/jackxxu/swagui/fork )
|
data/lib/swagui/json_schema.rb
CHANGED
@@ -18,7 +18,7 @@ module Swagui
|
|
18
18
|
else
|
19
19
|
@type = 'class'
|
20
20
|
(@schema_hash['properties'] ||= []).each do |pname, pattributes|
|
21
|
-
if pattributes['type'] == 'object' || (pattributes['type'] == 'array' && !pattributes['items'].nil?)
|
21
|
+
if pattributes['type'] == 'object' || (pattributes['type'] == 'array' && !pattributes['items'].nil? && (pattributes['items']['type'] == 'object'))
|
22
22
|
nested_object_name = "#{@name}-#{pname}"
|
23
23
|
if pattributes['type'] == 'object'
|
24
24
|
@schema_hash['properties'][pname] = {'$ref' => nested_object_name }
|
data/lib/swagui/version.rb
CHANGED
data/swagger-ui/lib/swagger.js
CHANGED
@@ -591,6 +591,7 @@ var SwaggerModelProperty = function(name, obj) {
|
|
591
591
|
this.isCollection = this.dataType && (this.dataType.toLowerCase() === 'array' || this.dataType.toLowerCase() === 'list' || this.dataType.toLowerCase() === 'set');
|
592
592
|
this.descr = obj.description;
|
593
593
|
this.required = obj.required;
|
594
|
+
this.sampleValue = obj.example; // sets the sample value
|
594
595
|
if (obj.items != null) {
|
595
596
|
if (obj.items.type != null) {
|
596
597
|
this.refDataType = obj.items.type;
|
@@ -620,6 +621,9 @@ SwaggerModelProperty.prototype.getSampleValue = function(modelsToIgnore) {
|
|
620
621
|
var result;
|
621
622
|
if ((this.refModel != null) && (modelsToIgnore.indexOf(prop.refModel.name) === -1)) {
|
622
623
|
result = this.refModel.createJSONSample(modelsToIgnore);
|
624
|
+
} else if (this.sampleValue) {
|
625
|
+
// displays sample value, if any
|
626
|
+
result = this.sampleValue
|
623
627
|
} else {
|
624
628
|
if (this.isCollection) {
|
625
629
|
result = this.toSampleValue(this.refDataType);
|
@@ -1489,7 +1493,7 @@ SwaggerAuthorizations.prototype.apply = function(obj, authorizations) {
|
|
1489
1493
|
if (result === true)
|
1490
1494
|
status = true;
|
1491
1495
|
}
|
1492
|
-
}
|
1496
|
+
}
|
1493
1497
|
}
|
1494
1498
|
}
|
1495
1499
|
|
@@ -38,6 +38,15 @@
|
|
38
38
|
"warehouseLocation": {
|
39
39
|
"description": "Coordinates of the warehouse with the product",
|
40
40
|
"$ref": "http://json-schema.org/geo"
|
41
|
+
},
|
42
|
+
"userIds": {
|
43
|
+
"type":"array",
|
44
|
+
"required":false,
|
45
|
+
"items": {
|
46
|
+
"type":"string",
|
47
|
+
"required":false,
|
48
|
+
"example": "1823257618648445648"
|
49
|
+
}
|
41
50
|
}
|
42
51
|
},
|
43
52
|
"required": ["id", "name", "price"]
|
data/test/test_json_schema.rb
CHANGED
@@ -12,20 +12,20 @@ class TestJsonSchema < Minitest::Test
|
|
12
12
|
|
13
13
|
def test_objects_method_returns_array
|
14
14
|
schema = Swagui::JsonSchema.new(@schema_json, 'PostAccount')
|
15
|
-
assert_equal schema.all_objects.size,
|
15
|
+
assert_equal schema.all_objects.size, 3
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_models_methods_return_array_of_hash
|
19
19
|
schema = Swagui::JsonSchema.new(@schema_json, 'PostAccount')
|
20
|
-
assert_equal schema.models.size,
|
21
|
-
assert_equal schema.models.map {|x| x['id']}, ["PostAccount", "PostAccount-contact", "PostAccount-
|
20
|
+
assert_equal schema.models.size, 3
|
21
|
+
assert_equal schema.models.map {|x| x['id']}, ["PostAccount", "PostAccount-contact", "PostAccount-entries"]
|
22
22
|
assert_equal schema.models.first['properties']['entries'], {'type' => 'array', 'items' => {"$ref"=>"PostAccount-entries"}}
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_array_schema
|
26
26
|
schema = Swagui::JsonSchema.new(@array_schema_json, 'GetAccount')
|
27
|
-
assert_equal schema.models.size,
|
28
|
-
assert_equal schema.models.map {|m| m['id']}, %w(GetAccount GetAccount-
|
27
|
+
assert_equal schema.models.size, 2
|
28
|
+
assert_equal schema.models.map {|m| m['id']}, %w(GetAccount GetAccount-dimensions)
|
29
29
|
end
|
30
30
|
|
31
31
|
end
|