#%RAML 1.0 title: Baeldung Foo REST Services API version: v1 protocols: [ HTTPS ] baseUri: http://rest-api.baeldung.com/api/{version} mediaType: application/json securedBy: basicAuth securitySchemes: - basicAuth: description: Each request must contain the headers necessary for basic authentication type: Basic Authentication describedBy: headers: Authorization: description: Used to send the Base64 encoded "username:password" credentials type: string responses: 401: description: | Unauthorized. Either the provided username and password combination is invalid, or the user is not allowed to access the content provided by the requested URL. types: Foo: !include types/Foo.raml Bar: !include types/Bar.raml Error: !include types/Error.raml traits: /foos: get: description: List all foos matching query criteria, if provided; otherwise list all foos queryParameters: name?: string ownerName?: string responses: 200: body: application/json: type: Foo[] example: !include examples/Foos.json post: description: Create a new foo body: application/json: type: Foo example: !include examples/Foo.json responses: 201: body: application/json: type: Foo example: !include examples/Foo.json /{fooId}: get: description: Get a foo by fooId responses: 200: body: application/json: type: Foo example: !include examples/Foo.json 404: body: application/json: type: Error example: !include examples/Error.json put: description: Update a foo by fooId body: application/json: type: Foo example: !include examples/Foo.json responses: 200: body: application/json: type: Foo example: !include examples/Foo.json 404: body: application/json: type: Error example: !include examples/Error.json delete: description: Delete a foo by fooId responses: 204: 404: body: application/json: type: Error example: !include examples/Error.json /name/{name}: get: description: List all foos with a certain name responses: 200: body: application/json: type: Foo[] example: !include examples/Foos.json /bars: get: description: List all bars matching query criteria, if provided; otherwise list all bars queryParameters: name?: string ownerName?: string responses: 200: body: application/json: type: Bar[] example: !include examples/Bars.json post: description: Create a new bar body: application/json: type: Bar example: !include examples/Bar.json responses: 201: body: application/json: type: Bar example: !include examples/Bar.json /{barId}: get: description: Get a bar by barId responses: 200: body: application/json: type: Bar example: !include examples/Bar.json 404: body: application/json: type: Error example: !include examples/Error.json put: description: Update a bar by barId body: application/json: type: Bar example: !include examples/Bar.json responses: 200: body: application/json: type: Bar example: !include examples/Bar.json 404: body: application/json: type: Error example: !include examples/Error.json delete: description: Delete a bar by barId responses: 204: 404: body: application/json: type: Error example: !include examples/Error.json /fooId/{fooId}: get: description: Get all bars for the matching fooId responses: 200: body: application/json: type: Bar[] example: !include examples/Bars.json