diff --git a/samples/server-generator/sinatra/output/lib/pet_api.rb b/samples/server-generator/sinatra/output/lib/pet_api.rb new file mode 100644 index 00000000000..774349d2e9c --- /dev/null +++ b/samples/server-generator/sinatra/output/lib/pet_api.rb @@ -0,0 +1,112 @@ +require 'json' + +MyApp.add_route('get', '/:petId', { + "resourcePath" => "/pet", + "summary" => "Find pet by ID", + "nickname" => "getPetById", + "responseClass" => "Pet", + "endpoint" => "/:petId", + "notes" => "Returns a pet based on ID", + "parameters" => [ + { + "name" => "petId", + "description" => "ID of pet that needs to be fetched", + "dataType" => "string", + "paramType" => "path", + }, + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('post', '/', { + "resourcePath" => "/pet", + "summary" => "Add a new pet to the store", + "nickname" => "addPet", + "responseClass" => "void", + "endpoint" => "/", + "notes" => "", + "parameters" => [ + { + "name" => "body", + "description" => "Pet object that needs to be added to the store", + "dataType" => "Pet", + "paramType" => "body", + } + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('put', '/', { + "resourcePath" => "/pet", + "summary" => "Update an existing pet", + "nickname" => "updatePet", + "responseClass" => "void", + "endpoint" => "/", + "notes" => "", + "parameters" => [ + { + "name" => "body", + "description" => "Pet object that needs to be updated in the store", + "dataType" => "Pet", + "paramType" => "body", + } + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('get', '/findByStatus', { + "resourcePath" => "/pet", + "summary" => "Finds Pets by status", + "nickname" => "findPetsByStatus", + "responseClass" => "List[Pet]", + "endpoint" => "/findByStatus", + "notes" => "Multiple status values can be provided with comma seperated strings", + "parameters" => [ + { + "name" => "status", + "description" => "Status values that need to be considered for filter", + "dataType" => "string", + "paramType" => "query", + "allowMultiple" => true, + "allowableValues" => "LIST[available,pending,sold]", + "defaultValue" => "available"}, + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('get', '/findByTags', { + "resourcePath" => "/pet", + "summary" => "Finds Pets by tags", + "nickname" => "findPetsByTags", + "responseClass" => "List[Pet]", + "endpoint" => "/findByTags", + "notes" => "Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing.", + "parameters" => [ + { + "name" => "tags", + "description" => "Tags to filter by", + "dataType" => "string", + "paramType" => "query", + "allowMultiple" => true, + "allowableValues" => "", + }, + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + + diff --git a/samples/server-generator/sinatra/output/lib/store_api.rb b/samples/server-generator/sinatra/output/lib/store_api.rb new file mode 100644 index 00000000000..8a5e2315c49 --- /dev/null +++ b/samples/server-generator/sinatra/output/lib/store_api.rb @@ -0,0 +1,66 @@ +require 'json' + +MyApp.add_route('get', '/order/:orderId', { + "resourcePath" => "/store", + "summary" => "Find purchase order by ID", + "nickname" => "getOrderById", + "responseClass" => "Order", + "endpoint" => "/order/:orderId", + "notes" => "For valid response try integer IDs with value <= 5. Anything above 5 or nonintegers will generate API errors", + "parameters" => [ + { + "name" => "orderId", + "description" => "ID of pet that needs to be fetched", + "dataType" => "string", + "paramType" => "path", + }, + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('delete', '/order/:orderId', { + "resourcePath" => "/store", + "summary" => "Delete purchase order by ID", + "nickname" => "deleteOrder", + "responseClass" => "void", + "endpoint" => "/order/:orderId", + "notes" => "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors", + "parameters" => [ + { + "name" => "orderId", + "description" => "ID of the order that needs to be deleted", + "dataType" => "string", + "paramType" => "path", + }, + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('post', '/order', { + "resourcePath" => "/store", + "summary" => "Place an order for a pet", + "nickname" => "placeOrder", + "responseClass" => "void", + "endpoint" => "/order", + "notes" => "", + "parameters" => [ + { + "name" => "body", + "description" => "order placed for purchasing the pet", + "dataType" => "Order", + "paramType" => "body", + } + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + + diff --git a/samples/server-generator/sinatra/output/lib/user_api.rb b/samples/server-generator/sinatra/output/lib/user_api.rb new file mode 100644 index 00000000000..8e1d5715151 --- /dev/null +++ b/samples/server-generator/sinatra/output/lib/user_api.rb @@ -0,0 +1,181 @@ +require 'json' + +MyApp.add_route('post', '/createWithArray', { + "resourcePath" => "/user", + "summary" => "Creates list of users with given input array", + "nickname" => "createUsersWithArrayInput", + "responseClass" => "void", + "endpoint" => "/createWithArray", + "notes" => "", + "parameters" => [ + { + "name" => "body", + "description" => "List of user object", + "dataType" => "Array[User]", + "paramType" => "body", + } + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('post', '/', { + "resourcePath" => "/user", + "summary" => "Create user", + "nickname" => "createUser", + "responseClass" => "void", + "endpoint" => "/", + "notes" => "This can only be done by the logged in user.", + "parameters" => [ + { + "name" => "body", + "description" => "Created user object", + "dataType" => "User", + "paramType" => "body", + } + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('post', '/createWithList', { + "resourcePath" => "/user", + "summary" => "Creates list of users with given list input", + "nickname" => "createUsersWithListInput", + "responseClass" => "void", + "endpoint" => "/createWithList", + "notes" => "", + "parameters" => [ + { + "name" => "body", + "description" => "List of user object", + "dataType" => "List[User]", + "paramType" => "body", + } + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('put', '/:username', { + "resourcePath" => "/user", + "summary" => "Updated user", + "nickname" => "updateUser", + "responseClass" => "void", + "endpoint" => "/:username", + "notes" => "This can only be done by the logged in user.", + "parameters" => [ + { + "name" => "username", + "description" => "name that need to be deleted", + "dataType" => "string", + "paramType" => "path", + }, + { + "name" => "body", + "description" => "Updated user object", + "dataType" => "User", + "paramType" => "body", + } + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('delete', '/:username', { + "resourcePath" => "/user", + "summary" => "Delete user", + "nickname" => "deleteUser", + "responseClass" => "void", + "endpoint" => "/:username", + "notes" => "This can only be done by the logged in user.", + "parameters" => [ + { + "name" => "username", + "description" => "The name that needs to be deleted", + "dataType" => "string", + "paramType" => "path", + }, + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('get', '/:username', { + "resourcePath" => "/user", + "summary" => "Get user by user name", + "nickname" => "getUserByName", + "responseClass" => "User", + "endpoint" => "/:username", + "notes" => "", + "parameters" => [ + { + "name" => "username", + "description" => "The name that needs to be fetched. Use user1 for testing.", + "dataType" => "string", + "paramType" => "path", + }, + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('get', '/login', { + "resourcePath" => "/user", + "summary" => "Logs user into the system", + "nickname" => "loginUser", + "responseClass" => "string", + "endpoint" => "/login", + "notes" => "", + "parameters" => [ + { + "name" => "username", + "description" => "The user name for login", + "dataType" => "string", + "paramType" => "query", + "allowMultiple" => false, + "allowableValues" => "", + }, + { + "name" => "password", + "description" => "The password for login in clear text", + "dataType" => "string", + "paramType" => "query", + "allowMultiple" => false, + "allowableValues" => "", + }, + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + +MyApp.add_route('get', '/logout', { + "resourcePath" => "/user", + "summary" => "Logs out current logged in user session", + "nickname" => "logoutUser", + "responseClass" => "void", + "endpoint" => "/logout", + "notes" => "", + "parameters" => [ + ]}) do + cross_origin + # the guts live here + + {"message" => "yes, it worked"}.to_json +end + + diff --git a/samples/server-generator/sinatra/output/my_app.rb b/samples/server-generator/sinatra/output/my_app.rb new file mode 100644 index 00000000000..d0dd2d68ad3 --- /dev/null +++ b/samples/server-generator/sinatra/output/my_app.rb @@ -0,0 +1,13 @@ +require './lib/swaggering' + +# only need to extend if you want special configuration! +class MyApp < Swaggering + self.configure do |config| + config.api_version = '0.2' + end +end + +require './lib/pet_api.rb' +require './lib/store_api.rb' +require './lib/user_api.rb' + diff --git a/samples/server-generator/sinatra/templates/my_app.mustache b/samples/server-generator/sinatra/templates/my_app.mustache new file mode 100644 index 00000000000..72b5267a140 --- /dev/null +++ b/samples/server-generator/sinatra/templates/my_app.mustache @@ -0,0 +1,12 @@ +require './lib/swaggering' + +# only need to extend if you want special configuration! +class MyApp < Swaggering + self.configure do |config| + config.api_version = '0.2' + end +end + +{{#apis}} +require './lib/{{className}}.rb' +{{/apis}} \ No newline at end of file