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
|