Added RAML files for first two articles
This commit is contained in:
parent
b83c04ef6b
commit
6fd289c573
|
@ -0,0 +1,102 @@
|
||||||
|
#%RAML 0.8
|
||||||
|
title: Baeldung Foo REST Services API
|
||||||
|
version: v1
|
||||||
|
protocols: [ HTTPS ]
|
||||||
|
baseUri: http://rest-api.baeldung.com/api/{version}
|
||||||
|
mediaType: application/json
|
||||||
|
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.
|
||||||
|
|
||||||
|
schemas:
|
||||||
|
- foo: !include foo.json
|
||||||
|
- foos: !include foos.json
|
||||||
|
- error: !include error.json
|
||||||
|
|
||||||
|
/foos:
|
||||||
|
get:
|
||||||
|
description: List all Foos matching query criteria, if provided;
|
||||||
|
otherwise list all Foos
|
||||||
|
queryParameters:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
required: false
|
||||||
|
ownerName:
|
||||||
|
type: string
|
||||||
|
required: false
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: foos
|
||||||
|
example: !include foos-example.json
|
||||||
|
post:
|
||||||
|
description: Create a new Foo
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: foo
|
||||||
|
example: foo-example.json
|
||||||
|
responses:
|
||||||
|
201:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: foo
|
||||||
|
example: foo-example.json
|
||||||
|
/{id}:
|
||||||
|
get:
|
||||||
|
description: Get a Foo by id
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: foo
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: error
|
||||||
|
put:
|
||||||
|
description: Update a Foo by id
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: foo
|
||||||
|
example: foo-example.json
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: foo
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: error
|
||||||
|
delete:
|
||||||
|
description: Delete a Foo by id
|
||||||
|
responses:
|
||||||
|
204:
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: error
|
||||||
|
/name/{name}:
|
||||||
|
get:
|
||||||
|
description: List all Foos with a certain name
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: foos
|
||||||
|
example: !include foos-example.json
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"message" : "Not found",
|
||||||
|
"code" : 1001
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{ "$schema": "http://json-schema.org/schema",
|
||||||
|
"type": "object",
|
||||||
|
"description": "Error message",
|
||||||
|
"properties": {
|
||||||
|
"message": { "type": "string" },
|
||||||
|
"code": { "type": integer }
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"message",
|
||||||
|
"code"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"id" : 1,
|
||||||
|
"name" : "First Foo"
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{ "$schema": "http://json-schema.org/schema",
|
||||||
|
"type": "object",
|
||||||
|
"description": "Foo details",
|
||||||
|
"properties": {
|
||||||
|
"id": { "type": integer },
|
||||||
|
"name": { "type": "string" },
|
||||||
|
"ownerName": { "type": "string" }
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"name"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id" : 1,
|
||||||
|
"name" : "First Foo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id" : 2,
|
||||||
|
"name" : "Second Foo"
|
||||||
|
}
|
||||||
|
]
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ "$schema": "http://json-schema.org/schema",
|
||||||
|
"type": "array",
|
||||||
|
"items": { "$ref": "foo" }
|
||||||
|
"description": "Collection of Foos"
|
||||||
|
}
|
|
@ -0,0 +1,101 @@
|
||||||
|
#%RAML 1.0
|
||||||
|
title: Baeldung Foo REST Services API
|
||||||
|
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
|
||||||
|
Error: !include types/Error.raml
|
||||||
|
/foos:
|
||||||
|
get:
|
||||||
|
description: List all Foos matching query criteria, if provided;
|
||||||
|
otherwise list all Foos
|
||||||
|
queryParameters:
|
||||||
|
name?: string
|
||||||
|
ownerName?: string
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo[]
|
||||||
|
example: !include examples/Foos.json
|
||||||
|
post:
|
||||||
|
description: Create a new Foo
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
responses:
|
||||||
|
201:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
/{id}:
|
||||||
|
get:
|
||||||
|
description: Get a Foo by id
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Error
|
||||||
|
example: !include examples/Error.json
|
||||||
|
put:
|
||||||
|
description: Update a Foo by id
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Error
|
||||||
|
example: !include examples/Error.json
|
||||||
|
delete:
|
||||||
|
description: Delete a Foo by id
|
||||||
|
responses:
|
||||||
|
204:
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Error
|
||||||
|
example: !include examples/Error.json
|
||||||
|
/name/{name}:
|
||||||
|
get:
|
||||||
|
description: List all Foos with a certain name
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo[]
|
||||||
|
example: !include examples/Foos.json
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"message" : "Not found",
|
||||||
|
"code" : 1001
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"id" : 1,
|
||||||
|
"name" : "First Foo"
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id" : 1,
|
||||||
|
"name" : "First Foo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id" : 2,
|
||||||
|
"name" : "Second Foo"
|
||||||
|
}
|
||||||
|
]
|
|
@ -0,0 +1,5 @@
|
||||||
|
#%RAML 1.0 DataType
|
||||||
|
|
||||||
|
properties:
|
||||||
|
code: integer
|
||||||
|
message: string
|
|
@ -0,0 +1,6 @@
|
||||||
|
#%RAML 1.0 DataType
|
||||||
|
|
||||||
|
properties:
|
||||||
|
id: integer
|
||||||
|
name: string
|
||||||
|
ownerName?: string
|
|
@ -0,0 +1,177 @@
|
||||||
|
#%RAML 1.0
|
||||||
|
title: Baeldung Foo REST Services API
|
||||||
|
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
|
||||||
|
traits:
|
||||||
|
/foos:
|
||||||
|
get:
|
||||||
|
description: List all foos matching query criteria, if provided;
|
||||||
|
otherwise list all foos
|
||||||
|
queryParameters:
|
||||||
|
name?: string
|
||||||
|
ownerName?: string
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo[]
|
||||||
|
example: !include examples/Foos.json
|
||||||
|
post:
|
||||||
|
description: Create a new foo
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
responses:
|
||||||
|
201:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
/{fooId}:
|
||||||
|
get:
|
||||||
|
description: Get a foo by fooId
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Error
|
||||||
|
example: !include examples/Error.json
|
||||||
|
put:
|
||||||
|
description: Update a foo by fooId
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo
|
||||||
|
example: !include examples/Foo.json
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Error
|
||||||
|
example: !include examples/Error.json
|
||||||
|
delete:
|
||||||
|
description: Delete a foo by fooId
|
||||||
|
responses:
|
||||||
|
204:
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Error
|
||||||
|
example: !include examples/Error.json
|
||||||
|
/name/{name}:
|
||||||
|
get:
|
||||||
|
description: List all foos with a certain name
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Foo[]
|
||||||
|
example: !include examples/Foos.json
|
||||||
|
/bars:
|
||||||
|
get:
|
||||||
|
description: List all bars matching query criteria, if provided;
|
||||||
|
otherwise list all bars
|
||||||
|
queryParameters:
|
||||||
|
name?: string
|
||||||
|
ownerName?: string
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Bar[]
|
||||||
|
example: !include examples/Bars.json
|
||||||
|
post:
|
||||||
|
description: Create a new bar
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Bar
|
||||||
|
example: !include examples/Bar.json
|
||||||
|
responses:
|
||||||
|
201:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Bar
|
||||||
|
example: !include examples/Bar.json
|
||||||
|
/{barId}:
|
||||||
|
get:
|
||||||
|
description: Get a bar by barId
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Bar
|
||||||
|
example: !include examples/Bar.json
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Error
|
||||||
|
example: !include examples/Error.json
|
||||||
|
put:
|
||||||
|
description: Update a bar by barId
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Bar
|
||||||
|
example: !include examples/Bar.json
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Bar
|
||||||
|
example: !include examples/Bar.json
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Error
|
||||||
|
example: !include examples/Error.json
|
||||||
|
delete:
|
||||||
|
description: Delete a bar by barId
|
||||||
|
responses:
|
||||||
|
204:
|
||||||
|
404:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Error
|
||||||
|
example: !include examples/Error.json
|
||||||
|
/fooId/{fooId}:
|
||||||
|
get:
|
||||||
|
description: Get all bars for the matching fooId
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
type: Bar[]
|
||||||
|
example: !include examples/Bars.json
|
|
@ -0,0 +1,108 @@
|
||||||
|
#%RAML 1.0
|
||||||
|
title: Baeldung Foo REST Services API
|
||||||
|
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 ]
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"id" : 1,
|
||||||
|
"name" : "First Bar",
|
||||||
|
"city" : "Austin",
|
||||||
|
"fooId" : 2
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id" : 1,
|
||||||
|
"name" : "First Bar",
|
||||||
|
"city" : "Austin",
|
||||||
|
"fooId" : 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id" : 2,
|
||||||
|
"name" : "Second Bar",
|
||||||
|
"city" : "Dallas",
|
||||||
|
"fooId" : 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id" : 3,
|
||||||
|
"name" : "Third Bar",
|
||||||
|
"fooId" : 2
|
||||||
|
}
|
||||||
|
]
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"message" : "Not found",
|
||||||
|
"code" : 1001
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"id" : 1,
|
||||||
|
"name" : "First Foo"
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id" : 1,
|
||||||
|
"name" : "First Foo",
|
||||||
|
"ownerName" : "Jack Robinson"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id" : 2,
|
||||||
|
"name" : "Second Foo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id" : 3,
|
||||||
|
"name" : "Third Foo",
|
||||||
|
"ownerName" : "Chuck Norris"
|
||||||
|
}
|
||||||
|
]
|
|
@ -0,0 +1,7 @@
|
||||||
|
#%RAML 1.0 DataType
|
||||||
|
|
||||||
|
properties:
|
||||||
|
id: integer
|
||||||
|
name: string
|
||||||
|
city?: string
|
||||||
|
fooId: integer
|
|
@ -0,0 +1,5 @@
|
||||||
|
#%RAML 1.0 DataType
|
||||||
|
|
||||||
|
properties:
|
||||||
|
code: integer
|
||||||
|
message: string
|
|
@ -0,0 +1,6 @@
|
||||||
|
#%RAML 1.0 DataType
|
||||||
|
|
||||||
|
properties:
|
||||||
|
id: integer
|
||||||
|
name: string
|
||||||
|
ownerName?: string
|
Loading…
Reference in New Issue