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
|