119 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #%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.
 | |
| 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
 | |
| resourceTypes:
 | |
|   - collection:
 | |
|       usage: Use this resourceType to represent a collection of items
 | |
|       description: A collection of <<resourcePathName|!uppercamelcase>>
 | |
|       get:
 | |
|         description: |
 | |
|           Get all <<resourcePathName|!uppercamelcase>>,
 | |
|           optionally filtered
 | |
|         is: [ hasResponseCollection ]
 | |
|       post:
 | |
|         description: |
 | |
|           Create a new <<resourcePathName|!uppercamelcase|!singularize>>
 | |
|         is: [ hasRequestItem ]
 | |
|   - item:
 | |
|       usage: Use this resourceType to represent any single item
 | |
|       description: A single <<typeName>>
 | |
|       get:
 | |
|         description: Get a <<typeName>> by <<resourcePathName>>
 | |
|         is: [ hasResponseItem, hasNotFound ]
 | |
|       put:
 | |
|         description: Update a <<typeName>> by <<resourcePathName>>
 | |
|         is: [ hasRequestItem, hasResponseItem, hasNotFound ]
 | |
|       delete:
 | |
|         description: Delete a <<typeName>> by <<resourcePathName>>
 | |
|         is: [ hasNotFound ]
 | |
|         responses:
 | |
|           204:
 | |
| traits:
 | |
|   - hasRequestItem:
 | |
|       body:
 | |
|         application/json:
 | |
|           type: <<typeName>>
 | |
|   - hasResponseItem:
 | |
|       responses:
 | |
|           200:
 | |
|             body:
 | |
|               application/json:
 | |
|                 type: <<typeName>>
 | |
|                 example: !include examples/<<typeName>>.json
 | |
|   - hasResponseCollection:
 | |
|       responses:
 | |
|           200:
 | |
|             body:
 | |
|               application/json:
 | |
|                 type: <<typeName>>[]
 | |
|                 example: !include examples/<<typeName|!pluralize>>.json
 | |
|   - hasNotFound:
 | |
|       responses:
 | |
|           404:
 | |
|             body:
 | |
|               application/json:
 | |
|                 type: Error
 | |
|                 example: !include examples/Error.json
 | |
| /foos:
 | |
|   type: collection
 | |
|   typeName: Foo
 | |
|   get:
 | |
|     queryParameters:
 | |
|       name?: string
 | |
|       ownerName?: string
 | |
|   /{fooId}:
 | |
|     type: item
 | |
|     typeName: Foo
 | |
|   /name/{name}:
 | |
|     get:
 | |
|       description: List all foos with a certain name
 | |
|       typeName: Foo
 | |
|       is: [ hasResponseCollection ]
 | |
| /bars:
 | |
|   type: collection
 | |
|   typeName: Bar
 | |
|   /{barId}:
 | |
|     type: item
 | |
|     typeName: Bar
 | |
|   /fooId/{fooId}:
 | |
|     get:
 | |
|       description: Get all bars for the matching fooId
 | |
|       typeName: Bar
 | |
|       is: [ hasResponseCollection ] |