#%RAML 1.0 title: API for REST Services used in the RAML tutorials on Baeldung.com documentation: - title: Overview content: | This document defines the interface for the REST services used in the popular RAML Tutorial series at Baeldung.com. - title: Disclaimer content: | All names used in this definition are purely fictional. Any similarities between the names used in this tutorial and those of real persons, whether living or dead, are merely coincidental. - title: Copyright content: Copyright 2016 by Baeldung.com. All rights reserved. uses: mySecuritySchemes: !include libraries/securitySchemes.raml myDataTypes: !include libraries/dataTypes.raml myTraits: !include libraries/traits.raml myResourceTypes: !include libraries/resourceTypes.raml version: v1 protocols: [ HTTPS ] baseUri: http://rest-api.baeldung.com/api/{version} mediaType: application/json securedBy: [ mySecuritySchemes.basicAuth ] annotationTypes: testCase: allowedTargets: [ Method ] allowMultiple: true usage: | Use this annotation to declare a test case within a testSuite declaration. You may apply this annotation multiple times within the target testSuite. properties: scenario: string setupScript?: string[] testScript: string[] expectedOutput?: string cleanupScript?: string[] /foos: type: myResourceTypes.collection get: queryParameters: name?: string ownerName?: string responses: 200: body: example: !include examples/Foos.json (testCase): scenario: No Foos setupScript: deleteAllFoosIfAny testScript: getAllFoos expectedOutput: "" (testCase): scenario: One Foo setupScript: [ deleteAllFoosIfAny, addInputFoos ] testScript: getAllFoos expectedOutput: '[ { "id": 999, "name": Joe } ]' cleanupScript: deleteInputFoos (testCase): scenario: Multiple Foos setupScript: [ deleteAllFoosIfAny, addInputFoos ] testScript: getAllFoos expectedOutput: '[ { "id": 998, "name": "Bob" }, { "id": 999, "name": "Joe", "ownerName": "Bob" } ]' cleanupScript: deleteInputFoos post: responses: 200: body: example: !include examples/Foo.json /{fooId}: type: myResourceTypes.item get: responses: 200: body: example: !include examples/Foo.json put: responses: 200: body: example: !include examples/Foo.json /foos/name/{name}: get: description: Get all Foos with the name {name} responses: 200: body: type: myDataTypes.Foo 404: body: type: myDataTypes.Error /foos/bar/{barId}: get: description: Get the Foo for the Bar with barId = {barId} responses: 200: body: example: !include examples/Foo.json /bars: type: myResourceTypes.collection get: queryParameters: name?: string ownerName?: string responses: 200: body: example: !include examples/Bars.json post: responses: 200: body: example: !include examples/Bar.json /{barId}: type: myResourceTypes.item get: responses: 200: body: example: !include examples/Bar.json put: responses: 200: body: example: !include examples/Bars.json