rapis 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ba0204f8bd9c638122135f36d8b20615babf16c4
4
+ data.tar.gz: 24479a1fc8d7add31b313e8554986a1f9ca74a1c
5
+ SHA512:
6
+ metadata.gz: 57562605e7c4e6ccd0ed2a4257ea2d3f43702eda0ddd375107a2e3cad52e81d89c5efadb6ef5a7fba27725640a7c89f4b2f0775c627f8d62da11821763ffa02a
7
+ data.tar.gz: 0d7536aef3fa961b79519c57dd25961d898ad013a7406569c2ca9beb29cf4df66f050739cbdd1fb9b918512936ff77101be2fd469322f0e818a68872c13645f4
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /vendor
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.1.5
5
+ before_install: gem install bundler -v 1.12.4
data/Apifile ADDED
@@ -0,0 +1,262 @@
1
+ rest_api do
2
+ swagger "2.0"
3
+ info do
4
+ version "2016-05-27T17:07:04Z"
5
+ title "PetStore"
6
+ end
7
+ host "p0dvujrb13.execute-api.ap-northeast-1.amazonaws.com"
8
+ basePath "/test"
9
+ schemes ["https"]
10
+ paths do
11
+ path "/" do
12
+ get do
13
+ consumes ["application/json"]
14
+ produces ["text/html"]
15
+ responses do
16
+ code 200 do
17
+ description "200 response"
18
+ headers(
19
+ {"Content-Type"=>{"type"=>"string"}})
20
+ end
21
+ end
22
+ amazon_apigateway_integration do
23
+ type "mock"
24
+ responses do
25
+ default do
26
+ statusCode 200
27
+ responseParameters(
28
+ {"method.response.header.Content-Type"=>"'text/html'"})
29
+ responseTemplates(
30
+ {"text/html"=>
31
+ "<html>\n <head>\n <style>\n body {\n color: #333;\n font-family: Sans-serif;\n max-width: 800px;\n margin: auto;\n }\n </style>\n </head>\n <body>\n <h1>Welcome to your Pet Store API</h1>\n <p>\n You have succesfully deployed your first API. You are seeing this HTML page because the <code>GET</code> method to the root resource of your API returns this content as a Mock integration.\n </p>\n <p>\n The Pet Store API contains the <code>/pets</code> and <code>/pets/{petId}</code> resources. By making a <a href=\"/$context.stage/pets/\" target=\"_blank\"><code>GET</code> request</a> to <code>/pets</code> you can retrieve a list of Pets in your API. If you are looking for a specific pet, for example the pet with ID 1, you can make a <a href=\"/$context.stage/pets/1\" target=\"_blank\"><code>GET</code> request</a> to <code>/pets/1</code>.\n </p>\n <p>\n You can use a REST client such as <a href=\"https://www.getpostman.com/\" target=\"_blank\">Postman</a> to test the <code>POST</code> methods in your API to create a new pet. Use the sample body below to send the <code>POST</code> request:\n </p>\n <pre>\n{\n \"type\" : \"cat\",\n \"price\" : 123.11\n}\n </pre>\n </body>\n</html>"})
32
+ end
33
+ end
34
+ requestTemplates(
35
+ {"application/json"=>"{\"statusCode\": 200}"})
36
+ passthroughBehavior "when_no_match"
37
+ end
38
+ end
39
+ post do
40
+ produces ["application/json"]
41
+ responses do
42
+ code 200 do
43
+ description "200 response"
44
+ schema do
45
+ ref "#/definitions/Empty"
46
+ end
47
+ headers(
48
+ {"Access-Control-Allow-Origin"=>{"type"=>"string"}})
49
+ end
50
+ end
51
+ amazon_apigateway_integration do
52
+ type "http"
53
+ responses do
54
+ default do
55
+ statusCode 200
56
+ responseParameters(
57
+ {"method.response.header.Access-Control-Allow-Origin"=>"'*'"})
58
+ end
59
+ end
60
+ uri "http://petstore-demo-endpoint.execute-api.com/petstore/pets"
61
+ passthroughBehavior "when_no_match"
62
+ httpMethod "POST"
63
+ end
64
+ end
65
+ options do
66
+ consumes ["application/json"]
67
+ produces ["application/json"]
68
+ responses do
69
+ code 200 do
70
+ description "200 response"
71
+ schema do
72
+ ref "#/definitions/Empty"
73
+ end
74
+ headers(
75
+ {"Access-Control-Allow-Origin"=>{"type"=>"string"},
76
+ "Access-Control-Allow-Methods"=>{"type"=>"string"},
77
+ "Access-Control-Allow-Headers"=>{"type"=>"string"}})
78
+ end
79
+ end
80
+ amazon_apigateway_integration do
81
+ type "mock"
82
+ responses do
83
+ default do
84
+ statusCode 200
85
+ responseParameters(
86
+ {"method.response.header.Access-Control-Allow-Methods"=>"'POST,OPTIONS'",
87
+ "method.response.header.Access-Control-Allow-Headers"=>
88
+ "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
89
+ "method.response.header.Access-Control-Allow-Origin"=>"'*'"})
90
+ end
91
+ end
92
+ requestTemplates(
93
+ {"application/json"=>"{\"statusCode\": 200}"})
94
+ passthroughBehavior "when_no_match"
95
+ end
96
+ end
97
+ end
98
+ path "/pets" do
99
+ get do
100
+ produces ["application/json"]
101
+ parameters [
102
+ {"name"=>"type", "in"=>"query", "required"=>false, "type"=>"string"},
103
+ {"name"=>"page", "in"=>"query", "required"=>false, "type"=>"string"}
104
+ ]
105
+ responses do
106
+ code 200 do
107
+ description "200 response"
108
+ schema do
109
+ ref "#/definitions/Empty"
110
+ end
111
+ headers(
112
+ {"Access-Control-Allow-Origin"=>{"type"=>"string"}})
113
+ end
114
+ end
115
+ amazon_apigateway_integration do
116
+ type "http"
117
+ responses do
118
+ default do
119
+ statusCode 200
120
+ responseParameters(
121
+ {"method.response.header.Access-Control-Allow-Origin"=>"'*'"})
122
+ end
123
+ end
124
+ uri "http://petstore-demo-endpoint.execute-api.com/petstore/pets"
125
+ passthroughBehavior "when_no_match"
126
+ httpMethod "GET"
127
+ requestParameters(
128
+ {"integration.request.querystring.page"=>"method.request.querystring.page",
129
+ "integration.request.querystring.type"=>"method.request.querystring.type"})
130
+ end
131
+ end
132
+ post do
133
+ produces ["application/json"]
134
+ responses do
135
+ code 200 do
136
+ description "200 response"
137
+ schema do
138
+ ref "#/definitions/Empty"
139
+ end
140
+ headers(
141
+ {"Access-Control-Allow-Origin"=>{"type"=>"string"}})
142
+ end
143
+ end
144
+ amazon_apigateway_integration do
145
+ type "http"
146
+ responses do
147
+ default do
148
+ statusCode 200
149
+ responseParameters(
150
+ {"method.response.header.Access-Control-Allow-Origin"=>"'*'"})
151
+ end
152
+ end
153
+ uri "http://petstore-demo-endpoint.execute-api.com/petstore/pets"
154
+ passthroughBehavior "when_no_match"
155
+ httpMethod "POST"
156
+ end
157
+ end
158
+ options do
159
+ consumes ["application/json"]
160
+ produces ["application/json"]
161
+ responses do
162
+ code 200 do
163
+ description "200 response"
164
+ schema do
165
+ ref "#/definitions/Empty"
166
+ end
167
+ headers(
168
+ {"Access-Control-Allow-Origin"=>{"type"=>"string"},
169
+ "Access-Control-Allow-Methods"=>{"type"=>"string"},
170
+ "Access-Control-Allow-Headers"=>{"type"=>"string"}})
171
+ end
172
+ end
173
+ amazon_apigateway_integration do
174
+ type "mock"
175
+ responses do
176
+ default do
177
+ statusCode 200
178
+ responseParameters(
179
+ {"method.response.header.Access-Control-Allow-Methods"=>"'POST,GET,OPTIONS'",
180
+ "method.response.header.Access-Control-Allow-Headers"=>
181
+ "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
182
+ "method.response.header.Access-Control-Allow-Origin"=>"'*'"})
183
+ end
184
+ end
185
+ requestTemplates(
186
+ {"application/json"=>"{\"statusCode\": 200}"})
187
+ passthroughBehavior "when_no_match"
188
+ end
189
+ end
190
+ end
191
+ path "/pets/{petId}" do
192
+ get do
193
+ produces ["application/json"]
194
+ parameters [
195
+ {"name"=>"petId", "in"=>"path", "required"=>true, "type"=>"string"}
196
+ ]
197
+ responses do
198
+ code 200 do
199
+ description "200 response"
200
+ schema do
201
+ ref "#/definitions/Empty"
202
+ end
203
+ headers(
204
+ {"Access-Control-Allow-Origin"=>{"type"=>"string"}})
205
+ end
206
+ end
207
+ amazon_apigateway_integration do
208
+ type "http"
209
+ responses do
210
+ default do
211
+ statusCode 200
212
+ responseParameters(
213
+ {"method.response.header.Access-Control-Allow-Origin"=>"'*'"})
214
+ end
215
+ end
216
+ uri "http://petstore-demo-endpoint.execute-api.com/petstore/pets/{petId}"
217
+ passthroughBehavior "when_no_match"
218
+ httpMethod "GET"
219
+ requestParameters(
220
+ {"integration.request.path.petId"=>"method.request.path.petId"})
221
+ end
222
+ end
223
+ options do
224
+ consumes ["application/json"]
225
+ produces ["application/json"]
226
+ responses do
227
+ code 200 do
228
+ description "200 response"
229
+ schema do
230
+ ref "#/definitions/Empty"
231
+ end
232
+ headers(
233
+ {"Access-Control-Allow-Origin"=>{"type"=>"string"},
234
+ "Access-Control-Allow-Methods"=>{"type"=>"string"},
235
+ "Access-Control-Allow-Headers"=>{"type"=>"string"}})
236
+ end
237
+ end
238
+ amazon_apigateway_integration do
239
+ type "mock"
240
+ responses do
241
+ default do
242
+ statusCode 200
243
+ responseParameters(
244
+ {"method.response.header.Access-Control-Allow-Methods"=>"'GET,OPTIONS'",
245
+ "method.response.header.Access-Control-Allow-Headers"=>
246
+ "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
247
+ "method.response.header.Access-Control-Allow-Origin"=>"'*'"})
248
+ end
249
+ end
250
+ requestTemplates(
251
+ {"application/json"=>"{\"statusCode\": 200}"})
252
+ passthroughBehavior "when_no_match"
253
+ end
254
+ end
255
+ end
256
+ end
257
+ definitions do
258
+ Empty do
259
+ type "object"
260
+ end
261
+ end
262
+ end
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ## 0.0.1
2
+
3
+ - Initial release
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rapis.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Masashi Terui
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,408 @@
1
+ # Rapis
2
+
3
+ Swagger as Ruby DSL and its deployment tool for Amazon API Gateway
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'rapis'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install rapis
20
+
21
+ ## Usage
22
+
23
+ ```sh
24
+ Commands:
25
+ rapis apply -r, --rest-api=REST_API # Apply the REST API configuration
26
+ rapis convert -F, --format=FORMAT # Convert the REST API configuration to the specified format
27
+ rapis create # Create REST API
28
+ rapis deploy -r, --rest-api=REST_API -s, --stage=STAGE # Deploy the current REST API configuration to the stage
29
+ rapis diff -r, --rest-api=REST_API -s, --stage=STAGE # Diff the local configuration and the remote configuration
30
+ rapis export -r, --rest-api=REST_API -s, --stage=STAGE # Export the configuration as Ruby DSL
31
+ rapis help [COMMAND] # Describe available commands or one specific command
32
+ rapis list # List the REST APIs and the stages
33
+
34
+ Options:
35
+ -f, [--file=FILE] # Configuration file
36
+ # Default: Apifile
37
+ ```
38
+
39
+ ## Commands
40
+
41
+ ### create
42
+ Create REST API
43
+
44
+ ```sh
45
+ Usage:
46
+ rapis create
47
+
48
+ Options:
49
+ -d, [--description=DESCRIPTION] # Description
50
+ -f, [--file=FILE] # Configuration file
51
+ # Default: Apifile
52
+ ```
53
+
54
+ ### apply
55
+ Apply the REST API configuration
56
+
57
+ ```sh
58
+ Usage:
59
+ rapis apply -r, --rest-api=REST_API
60
+
61
+ Options:
62
+ -r, --rest-api=REST_API # The id of the REST API
63
+ -f, [--file=FILE] # Configuration file
64
+ # Default: Apifile
65
+ ```
66
+
67
+ ### convert
68
+ Convert the REST API configuration to the specified format
69
+
70
+ ```sh
71
+ Usage:
72
+ rapis convert -F, --format=FORMAT
73
+
74
+ Options:
75
+ -F, --format=FORMAT # Output format # accepts json, yaml
76
+ -o, [--output=OUTPUT] # Output path
77
+ -f, [--file=FILE] # Configuration file
78
+ # Default: Apifile
79
+
80
+ ```
81
+
82
+ ### deploy
83
+ Deploy the current REST API configuration to the stage
84
+
85
+ ```sh
86
+ Usage:
87
+ rapis deploy -r, --rest-api=REST_API -s, --stage=STAGE
88
+
89
+ Options:
90
+ -r, --rest-api=REST_API # The id of the REST API
91
+ -s, --stage=STAGE # The name of the stage
92
+ -d, [--description=DESCRIPTION] # The description for the deployment
93
+ -D, [--stage-description=STAGE_DESCRIPTION] # The description of the stage
94
+ -c, [--cache=CACHE] # Size of the cache cluster # accepts 0.5, 1.6, 6.1, 13.5, 28.4, 58.2, 118, 237
95
+ # Default: 0.0
96
+ -v, [--variables=key:value] # A map that defines the stage variables
97
+ -f, [--file=FILE] # Configuration file
98
+ # Default: Apifile
99
+ ```
100
+
101
+ ### export
102
+ Export the configuration as Ruby DSL
103
+
104
+ ```sh
105
+ Usage:
106
+ rapis export -r, --rest-api=REST_API -s, --stage=STAGE
107
+
108
+ Options:
109
+ -r, --rest-api=REST_API # The id of the REST API
110
+ -s, --stage=STAGE # The name of the stage
111
+ -w, [--write], [--no-write] # Write the configuration to the file
112
+ -f, [--file=FILE] # Configuration file
113
+ # Default: Apifile
114
+ ```
115
+
116
+ ### List
117
+ List the REST APIs and the stages
118
+
119
+ ```sh
120
+ Usage:
121
+ rapis list
122
+
123
+ Options:
124
+ -V, [--verbose], [--no-verbose] # Verbose mode
125
+ -f, [--file=FILE] # Configuration file
126
+ # Default: Apifile
127
+ ```
128
+
129
+ ### diff
130
+ Diff the local configuration and the remote configuration
131
+
132
+ ```sh
133
+ Usage:
134
+ rapis diff -r, --rest-api=REST_API -s, --stage=STAGE
135
+
136
+ Options:
137
+ -r, --rest-api=REST_API # The id of the REST API
138
+ -s, --stage=STAGE # The name of the stage
139
+ -f, [--file=FILE] # Configuration file
140
+ # Default: Apifile
141
+ ```
142
+
143
+ ## Sample
144
+
145
+ ### JSON
146
+
147
+ ```json
148
+ {
149
+ "swagger": "2.0",
150
+ "info": {
151
+ "version": "2016-05-27T17:07:04Z",
152
+ "title": "PetStore"
153
+ },
154
+ "host": "p0dvujrb13.execute-api.ap-northeast-1.amazonaws.com",
155
+ "basePath": "/test",
156
+ "schemes": [
157
+ "https"
158
+ ],
159
+ "paths": {
160
+ "/": {
161
+ "get": {
162
+ "consumes": [
163
+ "application/json"
164
+ ],
165
+ "produces": [
166
+ "text/html"
167
+ ],
168
+ "responses": {
169
+ "200": {
170
+ "description": "200 response",
171
+ "headers": {
172
+ "Content-Type": {
173
+ "type": "string"
174
+ }
175
+ }
176
+ }
177
+ },
178
+ "x-amazon-apigateway-integration": {
179
+ "responses": {
180
+ "default": {
181
+ "statusCode": "200",
182
+ "responseParameters": {
183
+ "method.response.header.Content-Type": "'text/html'"
184
+ },
185
+ "responseTemplates": {
186
+ "text/html": "<html>\n <head>\n <style>\n body {\n color: #333;\n font-family: Sans-serif;\n max-width: 800px;\n margin: auto;\n }\n </style>\n </head>\n <body>\n <h1>Welcome to your Pet Store API</h1>\n <p>\n You have succesfully deployed your first API. You are seeing this HTML page because the <code>GET</code> method to the root resource of your API returns this content as a Mock integration.\n </p>\n <p>\n The Pet Store API contains the <code>/pets</code> and <code>/pets/{petId}</code> resources. By making a <a href=\"/$context.stage/pets/\" target=\"_blank\"><code>GET</code> request</a> to <code>/pets</code> you can retrieve a list of Pets in your API. If you are looking for a specific pet, for example the pet with ID 1, you can make a <a href=\"/$context.stage/pets/1\" target=\"_blank\"><code>GET</code> request</a> to <code>/pets/1</code>.\n </p>\n <p>\n You can use a REST client such as <a href=\"https://www.getpostman.com/\" target=\"_blank\">Postman</a> to test the <code>POST</code> methods in your API to create a new pet. Use the sample body below to send the <code>POST</code> request:\n </p>\n <pre>\n{\n \"type\" : \"cat\",\n \"price\" : 123.11\n}\n </pre>\n </body>\n</html>"
187
+ }
188
+ }
189
+ },
190
+ "requestTemplates": {
191
+ "application/json": "{\"statusCode\": 200}"
192
+ },
193
+ "passthroughBehavior": "when_no_match",
194
+ "type": "mock"
195
+ }
196
+ },
197
+ "post": {
198
+ "produces": [
199
+ "application/json"
200
+ ],
201
+ "responses": {
202
+ "200": {
203
+ "description": "200 response",
204
+ "schema": {
205
+ "$ref": "#/definitions/Empty"
206
+ },
207
+ "headers": {
208
+ "Access-Control-Allow-Origin": {
209
+ "type": "string"
210
+ }
211
+ }
212
+ }
213
+ },
214
+ "x-amazon-apigateway-integration": {
215
+ "responses": {
216
+ "default": {
217
+ "statusCode": "200",
218
+ "responseParameters": {
219
+ "method.response.header.Access-Control-Allow-Origin": "'*'"
220
+ }
221
+ }
222
+ },
223
+ "uri": "http://petstore-demo-endpoint.execute-api.com/petstore/pets",
224
+ "passthroughBehavior": "when_no_match",
225
+ "httpMethod": "POST",
226
+ "type": "http"
227
+ }
228
+ },
229
+ "options": {
230
+ "consumes": [
231
+ "application/json"
232
+ ],
233
+ "produces": [
234
+ "application/json"
235
+ ],
236
+ "responses": {
237
+ "200": {
238
+ "description": "200 response",
239
+ "schema": {
240
+ "$ref": "#/definitions/Empty"
241
+ },
242
+ "headers": {
243
+ "Access-Control-Allow-Origin": {
244
+ "type": "string"
245
+ },
246
+ "Access-Control-Allow-Methods": {
247
+ "type": "string"
248
+ },
249
+ "Access-Control-Allow-Headers": {
250
+ "type": "string"
251
+ }
252
+ }
253
+ }
254
+ },
255
+ "x-amazon-apigateway-integration": {
256
+ "responses": {
257
+ "default": {
258
+ "statusCode": "200",
259
+ "responseParameters": {
260
+ "method.response.header.Access-Control-Allow-Methods": "'POST,OPTIONS'",
261
+ "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
262
+ "method.response.header.Access-Control-Allow-Origin": "'*'"
263
+ }
264
+ }
265
+ },
266
+ "requestTemplates": {
267
+ "application/json": "{\"statusCode\": 200}"
268
+ },
269
+ "passthroughBehavior": "when_no_match",
270
+ "type": "mock"
271
+ }
272
+ }
273
+ }
274
+ },
275
+ "definitions": {
276
+ "Empty": {
277
+ "type": "object"
278
+ }
279
+ }
280
+ }
281
+ ```
282
+
283
+ ### Ruby DSL
284
+
285
+ ```ruby
286
+ rest_api do
287
+ swagger "2.0"
288
+ info do
289
+ version "2016-05-27T17:07:04Z"
290
+ title "PetStore"
291
+ end
292
+ host "p0dvujrb13.execute-api.ap-northeast-1.amazonaws.com"
293
+ basePath "/test"
294
+ schemes ["https"]
295
+ paths do
296
+ path "/" do
297
+ get do
298
+ consumes ["application/json"]
299
+ produces ["text/html"]
300
+ responses do
301
+ code 200 do
302
+ description "200 response"
303
+ headers(
304
+ {"Content-Type"=>{"type"=>"string"}})
305
+ end
306
+ end
307
+ amazon_apigateway_integration do
308
+ responses do
309
+ default do
310
+ statusCode 200
311
+ responseParameters(
312
+ {"method.response.header.Content-Type"=>"'text/html'"})
313
+ responseTemplates(
314
+ {"text/html"=>
315
+ "<html>\n <head>\n <style>\n body {\n color: #333;\n font-family: Sans-serif;\n max-width: 800px;\n margin: auto;\n }\n </style>\n </head>\n <body>\n <h1>Welcome to your Pet Store API</h1>\n <p>\n You have succesfully deployed your first API. You are seeing this HTML page because the <code>GET</code> method to the root resource of your API returns this content as a Mock integration.\n </p>\n <p>\n The Pet Store API contains the <code>/pets</code> and <code>/pets/{petId}</code> resources. By making a <a href=\"/$context.stage/pets/\" target=\"_blank\"><code>GET</code> request</a> to <code>/pets</code> you can retrieve a list of Pets in your API. If you are looking for a specific pet, for example the pet with ID 1, you can make a <a href=\"/$context.stage/pets/1\" target=\"_blank\"><code>GET</code> request</a> to <code>/pets/1</code>.\n </p>\n <p>\n You can use a REST client such as <a href=\"https://www.getpostman.com/\" target=\"_blank\">Postman</a> to test the <code>POST</code> methods in your API to create a new pet. Use the sample body below to send the <code>POST</code> request:\n </p>\n <pre>\n{\n \"type\" : \"cat\",\n \"price\" : 123.11\n}\n </pre>\n </body>\n</html>"})
316
+ end
317
+ end
318
+ requestTemplates(
319
+ {"application/json"=>"{\"statusCode\": 200}"})
320
+ passthroughBehavior "when_no_match"
321
+ type "mock"
322
+ end
323
+ end
324
+ post do
325
+ produces ["application/json"]
326
+ responses do
327
+ code 200 do
328
+ description "200 response"
329
+ schema do
330
+ ref "#/definitions/Empty"
331
+ end
332
+ headers(
333
+ {"Access-Control-Allow-Origin"=>{"type"=>"string"}})
334
+ end
335
+ end
336
+ amazon_apigateway_integration do
337
+ responses do
338
+ default do
339
+ statusCode 200
340
+ responseParameters(
341
+ {"method.response.header.Access-Control-Allow-Origin"=>"'*'"})
342
+ end
343
+ end
344
+ uri "http://petstore-demo-endpoint.execute-api.com/petstore/pets"
345
+ passthroughBehavior "when_no_match"
346
+ httpMethod "POST"
347
+ type "http"
348
+ end
349
+ end
350
+ options do
351
+ consumes ["application/json"]
352
+ produces ["application/json"]
353
+ responses do
354
+ code 200 do
355
+ description "200 response"
356
+ schema do
357
+ ref "#/definitions/Empty"
358
+ end
359
+ headers(
360
+ {"Access-Control-Allow-Origin"=>{"type"=>"string"},
361
+ "Access-Control-Allow-Methods"=>{"type"=>"string"},
362
+ "Access-Control-Allow-Headers"=>{"type"=>"string"}})
363
+ end
364
+ end
365
+ amazon_apigateway_integration do
366
+ responses do
367
+ default do
368
+ statusCode 200
369
+ responseParameters(
370
+ {"method.response.header.Access-Control-Allow-Methods"=>"'POST,OPTIONS'",
371
+ "method.response.header.Access-Control-Allow-Headers"=>
372
+ "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
373
+ "method.response.header.Access-Control-Allow-Origin"=>"'*'"})
374
+ end
375
+ end
376
+ requestTemplates(
377
+ {"application/json"=>"{\"statusCode\": 200}"})
378
+ passthroughBehavior "when_no_match"
379
+ type "mock"
380
+ end
381
+ end
382
+ end
383
+ end
384
+ definitions do
385
+ Empty do
386
+ type "object"
387
+ end
388
+ end
389
+ end
390
+ ```
391
+
392
+
393
+
394
+
395
+ ## Development
396
+
397
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
398
+
399
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
400
+
401
+ ## Contributing
402
+
403
+ Bug reports and pull requests are welcome on GitHub at https://github.com/marcy-terui/rapis.
404
+
405
+
406
+ ## License
407
+
408
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).