apipie-rails-jq 1.4.3.pre.beta.pre.jq.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 +7 -0
- data/.github/workflows/build.yml +32 -0
- data/.github/workflows/rubocop-challenger.yml +26 -0
- data/.github/workflows/rubocop.yml +18 -0
- data/.gitignore +16 -0
- data/.rspec +2 -0
- data/.rubocop.yml +132 -0
- data/.rubocop_todo.yml +1967 -0
- data/.vscode/settings.json +3 -0
- data/APACHE-LICENSE-2.0 +202 -0
- data/CHANGELOG.md +693 -0
- data/Gemfile +19 -0
- data/MIT-LICENSE +20 -0
- data/NOTICE +4 -0
- data/PROPOSAL_FOR_RESPONSE_DESCRIPTIONS.md +244 -0
- data/README.md +2088 -0
- data/Rakefile +8 -0
- data/apipie-rails.gemspec +44 -0
- data/app/controllers/apipie/apipies_controller.rb +184 -0
- data/app/helpers/apipie_helper.rb +10 -0
- data/app/public/apipie/javascripts/apipie.js +6 -0
- data/app/public/apipie/javascripts/bundled/bootstrap-collapse.js +167 -0
- data/app/public/apipie/javascripts/bundled/bootstrap.js +2280 -0
- data/app/public/apipie/javascripts/bundled/jquery.js +2 -0
- data/app/public/apipie/javascripts/bundled/prettify.js +28 -0
- data/app/public/apipie/stylesheets/application.css +7 -0
- data/app/public/apipie/stylesheets/bundled/bootstrap-responsive.min.css +9 -0
- data/app/public/apipie/stylesheets/bundled/bootstrap.min.css +9 -0
- data/app/public/apipie/stylesheets/bundled/prettify.css +30 -0
- data/app/views/apipie/apipies/_deprecation.html.erb +16 -0
- data/app/views/apipie/apipies/_disqus.html.erb +13 -0
- data/app/views/apipie/apipies/_errors.html.erb +23 -0
- data/app/views/apipie/apipies/_headers.html.erb +26 -0
- data/app/views/apipie/apipies/_languages.erb +6 -0
- data/app/views/apipie/apipies/_metadata.erb +1 -0
- data/app/views/apipie/apipies/_method_detail.erb +63 -0
- data/app/views/apipie/apipies/_params.html.erb +49 -0
- data/app/views/apipie/apipies/_params_plain.html.erb +21 -0
- data/app/views/apipie/apipies/apipie_404.html.erb +17 -0
- data/app/views/apipie/apipies/apipie_checksum.json.erb +1 -0
- data/app/views/apipie/apipies/getting_started.html.erb +6 -0
- data/app/views/apipie/apipies/index.html.erb +56 -0
- data/app/views/apipie/apipies/method.html.erb +41 -0
- data/app/views/apipie/apipies/plain.html.erb +77 -0
- data/app/views/apipie/apipies/resource.html.erb +80 -0
- data/app/views/apipie/apipies/static.html.erb +103 -0
- data/app/views/layouts/apipie/apipie.html.erb +27 -0
- data/config/locales/de.yml +28 -0
- data/config/locales/en.yml +41 -0
- data/config/locales/es.yml +28 -0
- data/config/locales/fr.yml +31 -0
- data/config/locales/it.yml +41 -0
- data/config/locales/ja.yml +31 -0
- data/config/locales/ko.yml +32 -0
- data/config/locales/pl.yml +28 -0
- data/config/locales/pt-BR.yml +28 -0
- data/config/locales/ru.yml +28 -0
- data/config/locales/tr.yml +28 -0
- data/config/locales/zh-CN.yml +28 -0
- data/config/locales/zh-TW.yml +28 -0
- data/gemfiles/Gemfile.tools +9 -0
- data/images/screenshot-1.png +0 -0
- data/images/screenshot-2.png +0 -0
- data/lib/apipie/apipie_module.rb +83 -0
- data/lib/apipie/application.rb +499 -0
- data/lib/apipie/configuration.rb +196 -0
- data/lib/apipie/core_ext/route.rb +9 -0
- data/lib/apipie/dsl_definition.rb +630 -0
- data/lib/apipie/error_description.rb +46 -0
- data/lib/apipie/errors.rb +86 -0
- data/lib/apipie/extractor/collector.rb +116 -0
- data/lib/apipie/extractor/recorder.rb +193 -0
- data/lib/apipie/extractor/writer.rb +454 -0
- data/lib/apipie/extractor.rb +181 -0
- data/lib/apipie/generator/config.rb +12 -0
- data/lib/apipie/generator/generator.rb +2 -0
- data/lib/apipie/generator/swagger/computed_interface_id.rb +23 -0
- data/lib/apipie/generator/swagger/config.rb +80 -0
- data/lib/apipie/generator/swagger/context.rb +38 -0
- data/lib/apipie/generator/swagger/method_description/api_decorator.rb +20 -0
- data/lib/apipie/generator/swagger/method_description/api_schema_service.rb +89 -0
- data/lib/apipie/generator/swagger/method_description/decorator.rb +22 -0
- data/lib/apipie/generator/swagger/method_description/parameters_service.rb +139 -0
- data/lib/apipie/generator/swagger/method_description/response_schema_service.rb +46 -0
- data/lib/apipie/generator/swagger/method_description/response_service.rb +71 -0
- data/lib/apipie/generator/swagger/method_description.rb +2 -0
- data/lib/apipie/generator/swagger/operation_id.rb +51 -0
- data/lib/apipie/generator/swagger/param_description/builder.rb +114 -0
- data/lib/apipie/generator/swagger/param_description/composite.rb +119 -0
- data/lib/apipie/generator/swagger/param_description/description.rb +15 -0
- data/lib/apipie/generator/swagger/param_description/in.rb +37 -0
- data/lib/apipie/generator/swagger/param_description/name.rb +18 -0
- data/lib/apipie/generator/swagger/param_description/path_params_composite.rb +61 -0
- data/lib/apipie/generator/swagger/param_description/referenced_composite.rb +36 -0
- data/lib/apipie/generator/swagger/param_description/type.rb +132 -0
- data/lib/apipie/generator/swagger/param_description.rb +18 -0
- data/lib/apipie/generator/swagger/path_decorator.rb +36 -0
- data/lib/apipie/generator/swagger/referenced_definitions.rb +17 -0
- data/lib/apipie/generator/swagger/resource_description_collection.rb +30 -0
- data/lib/apipie/generator/swagger/resource_description_composite.rb +56 -0
- data/lib/apipie/generator/swagger/schema.rb +63 -0
- data/lib/apipie/generator/swagger/swagger.rb +2 -0
- data/lib/apipie/generator/swagger/type.rb +16 -0
- data/lib/apipie/generator/swagger/type_extractor.rb +51 -0
- data/lib/apipie/generator/swagger/warning.rb +74 -0
- data/lib/apipie/generator/swagger/warning_writer.rb +54 -0
- data/lib/apipie/helpers.rb +73 -0
- data/lib/apipie/markup.rb +52 -0
- data/lib/apipie/method_description/api.rb +12 -0
- data/lib/apipie/method_description/apis_service.rb +82 -0
- data/lib/apipie/method_description.rb +230 -0
- data/lib/apipie/middleware/checksum_in_headers.rb +35 -0
- data/lib/apipie/param_description/deprecation.rb +24 -0
- data/lib/apipie/param_description.rb +313 -0
- data/lib/apipie/railtie.rb +9 -0
- data/lib/apipie/resource_description.rb +152 -0
- data/lib/apipie/response_description.rb +157 -0
- data/lib/apipie/response_description_adapter.rb +202 -0
- data/lib/apipie/routes_formatter.rb +33 -0
- data/lib/apipie/routing.rb +16 -0
- data/lib/apipie/rspec/response_validation_helper.rb +194 -0
- data/lib/apipie/see_description.rb +39 -0
- data/lib/apipie/static_dispatcher.rb +75 -0
- data/lib/apipie/swagger_generator.rb +45 -0
- data/lib/apipie/tag_list_description.rb +11 -0
- data/lib/apipie/validator.rb +552 -0
- data/lib/apipie/version.rb +3 -0
- data/lib/apipie-rails.rb +60 -0
- data/lib/generators/apipie/install/README +6 -0
- data/lib/generators/apipie/install/install_generator.rb +25 -0
- data/lib/generators/apipie/install/templates/initializer.rb.erb +7 -0
- data/lib/generators/apipie/views_generator.rb +11 -0
- data/lib/tasks/apipie.rake +355 -0
- data/rel-eng/gem_release.ipynb +398 -0
- data/rel-eng/packages/.readme +3 -0
- data/rel-eng/packages/rubygem-apipie-rails +1 -0
- data/rel-eng/tito.props +5 -0
- data/spec/controllers/api/v1/architectures_controller_spec.rb +29 -0
- data/spec/controllers/api/v2/architectures_controller_spec.rb +19 -0
- data/spec/controllers/api/v2/empty_middle_controller_spec.rb +23 -0
- data/spec/controllers/api/v2/nested/resources_controller_spec.rb +27 -0
- data/spec/controllers/api/v2/sub/footguns_controller_spec.rb +19 -0
- data/spec/controllers/concerns_controller_spec.rb +42 -0
- data/spec/controllers/extended_controller_spec.rb +14 -0
- data/spec/controllers/included_param_group_controller_spec.rb +13 -0
- data/spec/controllers/pets_controller_spec.rb +98 -0
- data/spec/controllers/users_controller_spec.rb +794 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/controllers/api/base_controller.rb +4 -0
- data/spec/dummy/app/controllers/api/v1/architectures_controller.rb +43 -0
- data/spec/dummy/app/controllers/api/v1/base_controller.rb +11 -0
- data/spec/dummy/app/controllers/api/v2/architectures_controller.rb +31 -0
- data/spec/dummy/app/controllers/api/v2/base_controller.rb +17 -0
- data/spec/dummy/app/controllers/api/v2/empty_middle_controller.rb +14 -0
- data/spec/dummy/app/controllers/api/v2/nested/architectures_controller.rb +32 -0
- data/spec/dummy/app/controllers/api/v2/nested/resources_controller.rb +33 -0
- data/spec/dummy/app/controllers/api/v2/sub/footguns_controller.rb +30 -0
- data/spec/dummy/app/controllers/application_controller.rb +18 -0
- data/spec/dummy/app/controllers/concerns_controller.rb +8 -0
- data/spec/dummy/app/controllers/extended_controller.rb +14 -0
- data/spec/dummy/app/controllers/extending_concern.rb +10 -0
- data/spec/dummy/app/controllers/files_controller.rb +5 -0
- data/spec/dummy/app/controllers/included_param_group_controller.rb +19 -0
- data/spec/dummy/app/controllers/overridden_concerns_controller.rb +31 -0
- data/spec/dummy/app/controllers/pets_controller.rb +408 -0
- data/spec/dummy/app/controllers/pets_using_auto_views_controller.rb +73 -0
- data/spec/dummy/app/controllers/pets_using_self_describing_classes_controller.rb +95 -0
- data/spec/dummy/app/controllers/sample_controller.rb +39 -0
- data/spec/dummy/app/controllers/tagged_cats_controller.rb +32 -0
- data/spec/dummy/app/controllers/tagged_dogs_controller.rb +15 -0
- data/spec/dummy/app/controllers/twitter_example_controller.rb +307 -0
- data/spec/dummy/app/controllers/users_controller.rb +310 -0
- data/spec/dummy/app/helpers/random_param_group.rb +8 -0
- data/spec/dummy/app/views/layouts/application.html.erb +21 -0
- data/spec/dummy/components/test_engine/Gemfile +6 -0
- data/spec/dummy/components/test_engine/app/controllers/test_engine/application_controller.rb +4 -0
- data/spec/dummy/components/test_engine/app/controllers/test_engine/memes_controller.rb +37 -0
- data/spec/dummy/components/test_engine/config/routes.rb +3 -0
- data/spec/dummy/components/test_engine/db/.gitkeep +0 -0
- data/spec/dummy/components/test_engine/lib/test_engine.rb +7 -0
- data/spec/dummy/components/test_engine/test_engine.gemspec +11 -0
- data/spec/dummy/config/application.rb +47 -0
- data/spec/dummy/config/boot.rb +12 -0
- data/spec/dummy/config/database.yml +21 -0
- data/spec/dummy/config/environment.rb +8 -0
- data/spec/dummy/config/environments/development.rb +25 -0
- data/spec/dummy/config/environments/production.rb +49 -0
- data/spec/dummy/config/environments/test.rb +33 -0
- data/spec/dummy/config/initializers/apipie.rb +110 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +8 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +61 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/.gitkeep +0 -0
- data/spec/dummy/doc/apipie_examples.json +1 -0
- data/spec/dummy/doc/users/desc_from_file.md +1 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/lib/apipie/apipies_controller_spec.rb +345 -0
- data/spec/lib/apipie/application_spec.rb +62 -0
- data/spec/lib/apipie/configuration_spec.rb +38 -0
- data/spec/lib/apipie/extractor/collector_spec.rb +57 -0
- data/spec/lib/apipie/extractor/recorder/middleware_spec.rb +44 -0
- data/spec/lib/apipie/extractor/recorder_spec.rb +77 -0
- data/spec/lib/apipie/extractor/writer_spec.rb +112 -0
- data/spec/lib/apipie/extractor_spec.rb +9 -0
- data/spec/lib/apipie/file_handler_spec.rb +25 -0
- data/spec/lib/apipie/generator/swagger/config_spec.rb +19 -0
- data/spec/lib/apipie/generator/swagger/context_spec.rb +56 -0
- data/spec/lib/apipie/generator/swagger/method_description/api_schema_service_spec.rb +119 -0
- data/spec/lib/apipie/generator/swagger/method_description/response_schema_service_spec.rb +105 -0
- data/spec/lib/apipie/generator/swagger/method_description/response_service_spec.rb +62 -0
- data/spec/lib/apipie/generator/swagger/operation_id_spec.rb +63 -0
- data/spec/lib/apipie/generator/swagger/param_description/builder_spec.rb +245 -0
- data/spec/lib/apipie/generator/swagger/param_description/composite_spec.rb +95 -0
- data/spec/lib/apipie/generator/swagger/param_description/description_spec.rb +79 -0
- data/spec/lib/apipie/generator/swagger/param_description/in_spec.rb +86 -0
- data/spec/lib/apipie/generator/swagger/param_description/name_spec.rb +81 -0
- data/spec/lib/apipie/generator/swagger/param_description/type_spec.rb +210 -0
- data/spec/lib/apipie/generator/swagger/param_description_spec.rb +28 -0
- data/spec/lib/apipie/generator/swagger/path_decorator_spec.rb +57 -0
- data/spec/lib/apipie/generator/swagger/referenced_definitions_spec.rb +35 -0
- data/spec/lib/apipie/generator/swagger/resource_description_composite_spec.rb +37 -0
- data/spec/lib/apipie/generator/swagger/resource_descriptions_collection_spec.rb +57 -0
- data/spec/lib/apipie/generator/swagger/schema_spec.rb +89 -0
- data/spec/lib/apipie/generator/swagger/type_extractor_spec.rb +38 -0
- data/spec/lib/apipie/generator/swagger/warning_spec.rb +51 -0
- data/spec/lib/apipie/generator/swagger/warning_writer_spec.rb +71 -0
- data/spec/lib/apipie/method_description/apis_service_spec.rb +60 -0
- data/spec/lib/apipie/method_description_spec.rb +133 -0
- data/spec/lib/apipie/no_documented_method_spec.rb +17 -0
- data/spec/lib/apipie/param_description/deprecation_spec.rb +31 -0
- data/spec/lib/apipie/param_description_spec.rb +671 -0
- data/spec/lib/apipie/param_group_spec.rb +61 -0
- data/spec/lib/apipie/resource_description_spec.rb +91 -0
- data/spec/lib/apipie/response_description/response_object_spec.rb +22 -0
- data/spec/lib/apipie/response_description_spec.rb +56 -0
- data/spec/lib/apipie/response_does_not_match_swagger_schema_spec.rb +35 -0
- data/spec/lib/apipie/swagger_generator_spec.rb +94 -0
- data/spec/lib/apipie/validator_spec.rb +149 -0
- data/spec/lib/rake_spec.rb +69 -0
- data/spec/lib/swagger/openapi_2_0_schema.json +1614 -0
- data/spec/lib/swagger/rake_swagger_spec.rb +159 -0
- data/spec/lib/swagger/swagger_dsl_spec.rb +664 -0
- data/spec/lib/validators/array_validator_spec.rb +85 -0
- data/spec/spec_helper.rb +92 -0
- data/spec/support/custom_bool_validator.rb +17 -0
- data/spec/support/rake.rb +21 -0
- data/spec/test_engine/memes_controller_spec.rb +10 -0
- metadata +499 -0
data/spec/dummy/Rakefile
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
2
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
3
|
+
|
4
|
+
require File.expand_path('config/application', __dir__)
|
5
|
+
require 'rake'
|
6
|
+
|
7
|
+
Dummy::Application.load_tasks
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Api
|
2
|
+
module V1
|
3
|
+
class ArchitecturesController < V1::BaseController
|
4
|
+
resource_description { name 'Architectures' }
|
5
|
+
api :GET, "/architectures/", "List all architectures."
|
6
|
+
def index
|
7
|
+
end
|
8
|
+
|
9
|
+
api :GET, "/architectures/:id/", "Show an architecture."
|
10
|
+
def show
|
11
|
+
end
|
12
|
+
|
13
|
+
def_param_group :timestamps do
|
14
|
+
param :created_at, String
|
15
|
+
param :updated_at, String
|
16
|
+
end
|
17
|
+
|
18
|
+
def_param_group :arch do
|
19
|
+
param :architecture, Hash, :required => true do
|
20
|
+
param :name, String, :required => true
|
21
|
+
param :description, String, :required => true
|
22
|
+
param_group :timestamps
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
api :POST, "/architectures/", "Create an architecture."
|
27
|
+
param_group :arch
|
28
|
+
def create
|
29
|
+
end
|
30
|
+
|
31
|
+
api :PUT, "/architectures/:id/", "Update an architecture."
|
32
|
+
param :architecture, Hash, :required => true do
|
33
|
+
param :name, String
|
34
|
+
end
|
35
|
+
def update
|
36
|
+
end
|
37
|
+
|
38
|
+
api :DELETE, "/architecturess/:id/", "Delete an architecture."
|
39
|
+
def destroy
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Api
|
2
|
+
module V2
|
3
|
+
class ArchitecturesController < V2::BaseController
|
4
|
+
resource_description { name 'Architectures' }
|
5
|
+
api :GET, "/architectures/", "List all architectures."
|
6
|
+
def index
|
7
|
+
end
|
8
|
+
|
9
|
+
api :GET, "/architectures/:id/", "Show an architecture."
|
10
|
+
def show
|
11
|
+
end
|
12
|
+
|
13
|
+
api :POST, "/architectures/", "Create an architecture."
|
14
|
+
param_group :arch, Api::V1::ArchitecturesController
|
15
|
+
def create
|
16
|
+
end
|
17
|
+
|
18
|
+
api :PUT, "/architectures/:id/", "Update an architecture."
|
19
|
+
param :architecture, Hash, :required => true do
|
20
|
+
param :name, String
|
21
|
+
end
|
22
|
+
def update
|
23
|
+
end
|
24
|
+
|
25
|
+
api! "Delete an architecture."
|
26
|
+
api_version "2.0" # forces removal of the method description
|
27
|
+
def destroy
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Api
|
2
|
+
module V2
|
3
|
+
class BaseController < Api::BaseController
|
4
|
+
resource_description do
|
5
|
+
api_version '2.0'
|
6
|
+
app_info 'Version 2.0 description'
|
7
|
+
api_base_url '/api/v2'
|
8
|
+
|
9
|
+
name :reversed_name
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.reversed_name
|
13
|
+
controller_name.capitalize.reverse
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Api
|
2
|
+
module V2
|
3
|
+
class EmptyMiddleController < V2::BaseController
|
4
|
+
# This is an empty controller, used to test cases where controllers
|
5
|
+
# may inherit from a middle controller that does not define a resource_description,
|
6
|
+
# but the middle controller's parent does.
|
7
|
+
|
8
|
+
def inconsequential_method
|
9
|
+
# This method is here to ensure that the controller is not empty.
|
10
|
+
# It triggers method_added, which is used to add the resource description.
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Api
|
2
|
+
module V2
|
3
|
+
module Nested
|
4
|
+
class ArchitecturesController < V2::BaseController
|
5
|
+
resource_description { name 'Architectures' }
|
6
|
+
api :GET, "/nested/architectures/", "List all nested architectures."
|
7
|
+
def index
|
8
|
+
end
|
9
|
+
|
10
|
+
api :GET, "/nested/architectures/:id/", "Show a nested architecture."
|
11
|
+
def show
|
12
|
+
end
|
13
|
+
|
14
|
+
api :POST, "/nested/architectures/", "Create a nested architecture."
|
15
|
+
param_group :arch, Api::V1::ArchitecturesController
|
16
|
+
def create
|
17
|
+
end
|
18
|
+
|
19
|
+
api :PUT, "/nested/architectures/:id/", "Update a nested architecture."
|
20
|
+
param :architecture, Hash, :required => true do
|
21
|
+
param :name, String
|
22
|
+
end
|
23
|
+
def update
|
24
|
+
end
|
25
|
+
|
26
|
+
api :DELETE, "/architecturess/:id/", "Delete a nested architecture."
|
27
|
+
def destroy
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Api
|
2
|
+
module V2
|
3
|
+
class Nested::ResourcesController < V2::BaseController
|
4
|
+
resource_description do
|
5
|
+
name ->(controller) { controller.controller_name.delete('aeiou').capitalize }
|
6
|
+
resource_id "resource"
|
7
|
+
end
|
8
|
+
api :GET, "/nested/resources/", "List all nested resources."
|
9
|
+
def index
|
10
|
+
end
|
11
|
+
|
12
|
+
api :GET, "/nested/resources/:id/", "Show a nested resource."
|
13
|
+
def show
|
14
|
+
end
|
15
|
+
|
16
|
+
api :POST, "/nested/resources/", "Create a nested resource."
|
17
|
+
param_group :arch, Api::V1::ArchitecturesController
|
18
|
+
def create
|
19
|
+
end
|
20
|
+
|
21
|
+
api :PUT, "/nested/resources/:id/", "Update a nested resource."
|
22
|
+
param :architecture, Hash, :required => true do
|
23
|
+
param :name, String
|
24
|
+
end
|
25
|
+
def update
|
26
|
+
end
|
27
|
+
|
28
|
+
api :DELETE, "/resources/:id/", "Delete a nested resource."
|
29
|
+
def destroy
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Api
|
2
|
+
module V2
|
3
|
+
module Sub
|
4
|
+
class FootgunsController < V2::EmptyMiddleController
|
5
|
+
resource_description do
|
6
|
+
short 'Footguns are bad'
|
7
|
+
end
|
8
|
+
|
9
|
+
api :GET, '/footguns/', 'List all footguns.'
|
10
|
+
def index; end
|
11
|
+
|
12
|
+
api :GET, '/footguns/:id/', 'Show a footgun.'
|
13
|
+
def show; end
|
14
|
+
|
15
|
+
api :POST, '/footguns/', 'Create a footgun.'
|
16
|
+
def create; end
|
17
|
+
|
18
|
+
api :PUT, '/footguns/:id/', 'Update a footgun.'
|
19
|
+
param :footgun, Hash, :required => true do
|
20
|
+
param :name, String
|
21
|
+
end
|
22
|
+
def update; end
|
23
|
+
|
24
|
+
api! 'Delete a footgun.'
|
25
|
+
api_version '2.0' # forces removal of the method description
|
26
|
+
def destroy; end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class ApplicationController < ActionController::Base
|
2
|
+
before_action :run_validations
|
3
|
+
|
4
|
+
resource_description do
|
5
|
+
param :oauth, String, :desc => "Authorization", :required => false
|
6
|
+
|
7
|
+
returns :code => 401 do
|
8
|
+
property :reason, String, "Why authorization was denied"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def run_validations
|
13
|
+
if Apipie.configuration.validate == :explicitly
|
14
|
+
apipie_validations
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class IncludedParamGroupController < ApplicationController
|
2
|
+
include RandomParamGroup
|
3
|
+
|
4
|
+
api :GET, '/included-param-group'
|
5
|
+
returns code:200 do
|
6
|
+
property :top_level, Array, of: Hash do
|
7
|
+
param_group :random_param_group
|
8
|
+
end
|
9
|
+
property :nested, Hash do
|
10
|
+
property :random_array, Array, of: Hash do
|
11
|
+
param_group :random_param_group
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
def show
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class OverriddenConcernsController < ApplicationController
|
2
|
+
|
3
|
+
resource_description { resource_id 'overridden_concern_resources' }
|
4
|
+
|
5
|
+
apipie_concern_subst(:concern => 'user')
|
6
|
+
include SampleController
|
7
|
+
|
8
|
+
def_param_group :concern do
|
9
|
+
param :concern, String
|
10
|
+
end
|
11
|
+
|
12
|
+
api :PUT, '/:resource_id/:id'
|
13
|
+
param :custom_parameter, String, "New parameter added by the overriding method"
|
14
|
+
param_group :concern, SampleController
|
15
|
+
def update
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
api :POST, '/:resource_id', "Create a :concern"
|
20
|
+
param_group :concern
|
21
|
+
def create
|
22
|
+
super
|
23
|
+
end
|
24
|
+
|
25
|
+
api :GET, '/:resource_id/custom'
|
26
|
+
param :concern, String
|
27
|
+
def custom
|
28
|
+
render :text => "OK #{params.inspect}"
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|