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
 |