127 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			127 lines
		
	
	
		
			3.4 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.
							 | 
						||
| 
								 | 
							
								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
							 |