rswag-api 2.1.1 → 2.3.3
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/lib/generators/rswag/api/install/USAGE +1 -1
- data/lib/generators/rswag/api/install/install_generator.rb +1 -1
- data/lib/generators/rswag/api/install/templates/{rswag-api.rb → rswag_api.rb} +0 -0
- data/lib/rswag/api/configuration.rb +1 -1
- data/lib/rswag/api/middleware.rb +30 -5
- metadata +14 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b73417261746971615d57f1e030552148fa2ff53f1071ed350ed8ddf092720a
|
4
|
+
data.tar.gz: 5365ebf8d3c67f6da3eef8ed1ff2c6819f312d64b6adad9fb39a2b1c3413cc82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f1ca03959d88e66ab71a10290f2e8eba689926a04b2a6a559f4c9eef77bab95f5c7e0c63572a7868a03b7607048fc704f6923c62089176df7a2bb0a89c9837f
|
7
|
+
data.tar.gz: 662b0d2d6aa382372486ca40532d364413a18434a171d971e8f4f3a3fde672ad82d909baabbf11617a96a6d12b1f452945d4b16be529d9154041ea0c6e8c56d3
|
File without changes
|
data/lib/rswag/api/middleware.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'yaml'
|
3
|
+
require 'rack/mime'
|
2
4
|
|
3
5
|
module Rswag
|
4
6
|
module Api
|
5
|
-
class Middleware
|
7
|
+
class Middleware
|
6
8
|
|
7
9
|
def initialize(app, config)
|
8
10
|
@app = app
|
@@ -14,24 +16,47 @@ module Rswag
|
|
14
16
|
filename = "#{@config.resolve_swagger_root(env)}/#{path}"
|
15
17
|
|
16
18
|
if env['REQUEST_METHOD'] == 'GET' && File.file?(filename)
|
17
|
-
swagger =
|
19
|
+
swagger = parse_file(filename)
|
18
20
|
@config.swagger_filter.call(swagger, env) unless @config.swagger_filter.nil?
|
21
|
+
mime = Rack::Mime.mime_type(::File.extname(path), 'text/plain')
|
22
|
+
headers = { 'Content-Type' => mime }.merge(@config.swagger_headers || {})
|
23
|
+
body = unload_swagger(filename, swagger)
|
19
24
|
|
20
25
|
return [
|
21
26
|
'200',
|
22
|
-
|
23
|
-
[
|
27
|
+
headers,
|
28
|
+
[ body ]
|
24
29
|
]
|
25
30
|
end
|
26
|
-
|
31
|
+
|
27
32
|
return @app.call(env)
|
28
33
|
end
|
29
34
|
|
30
35
|
private
|
31
36
|
|
37
|
+
def parse_file(filename)
|
38
|
+
if /\.ya?ml$/ === filename
|
39
|
+
load_yaml(filename)
|
40
|
+
else
|
41
|
+
load_json(filename)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def load_yaml(filename)
|
46
|
+
YAML.safe_load(File.read(filename))
|
47
|
+
end
|
48
|
+
|
32
49
|
def load_json(filename)
|
33
50
|
JSON.parse(File.read(filename))
|
34
51
|
end
|
52
|
+
|
53
|
+
def unload_swagger(filename, swagger)
|
54
|
+
if /\.ya?ml$/ === filename
|
55
|
+
YAML.dump(swagger)
|
56
|
+
else
|
57
|
+
JSON.dump(swagger)
|
58
|
+
end
|
59
|
+
end
|
35
60
|
end
|
36
61
|
end
|
37
62
|
end
|
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rswag-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richie Morris
|
8
|
+
- Greg Myers
|
9
|
+
- Jay Danielian
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
|
-
date:
|
13
|
+
date: 2021-02-07 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: railties
|
@@ -19,7 +21,7 @@ dependencies:
|
|
19
21
|
version: '3.1'
|
20
22
|
- - "<"
|
21
23
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
24
|
+
version: '7.0'
|
23
25
|
type: :runtime
|
24
26
|
prerelease: false
|
25
27
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,9 +31,10 @@ dependencies:
|
|
29
31
|
version: '3.1'
|
30
32
|
- - "<"
|
31
33
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
33
|
-
description: Open up your API to the phenomenal
|
34
|
-
files, that describe your service, as JSON endpoints
|
34
|
+
version: '7.0'
|
35
|
+
description: 'Open up your API to the phenomenal OpenAPI ecosystem by exposing OpenAPI
|
36
|
+
files, that describe your service, as JSON endpoints. More about the OpenAPI initiative
|
37
|
+
here: http://spec.openapis.org/'
|
35
38
|
email:
|
36
39
|
- domaindrivendev@gmail.com
|
37
40
|
executables: []
|
@@ -42,12 +45,12 @@ files:
|
|
42
45
|
- Rakefile
|
43
46
|
- lib/generators/rswag/api/install/USAGE
|
44
47
|
- lib/generators/rswag/api/install/install_generator.rb
|
45
|
-
- lib/generators/rswag/api/install/templates/
|
48
|
+
- lib/generators/rswag/api/install/templates/rswag_api.rb
|
46
49
|
- lib/rswag/api.rb
|
47
50
|
- lib/rswag/api/configuration.rb
|
48
51
|
- lib/rswag/api/engine.rb
|
49
52
|
- lib/rswag/api/middleware.rb
|
50
|
-
homepage: https://github.com/
|
53
|
+
homepage: https://github.com/rswag/rswag
|
51
54
|
licenses:
|
52
55
|
- MIT
|
53
56
|
metadata: {}
|
@@ -66,9 +69,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
69
|
- !ruby/object:Gem::Version
|
67
70
|
version: '0'
|
68
71
|
requirements: []
|
69
|
-
|
70
|
-
rubygems_version: 2.7.7
|
72
|
+
rubygems_version: 3.0.6
|
71
73
|
signing_key:
|
72
74
|
specification_version: 4
|
73
|
-
summary: A Rails Engine that exposes Swagger files as JSON
|
75
|
+
summary: A Rails Engine that exposes OpenAPI (formerly called Swagger) files as JSON
|
76
|
+
endpoints
|
74
77
|
test_files: []
|