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 ]
|