Tomasz Ducin
21st October 2015, Warsaw
senior software consultant @ Cybercom Poland
blah, blah, blah...
ŻabaScript
here be dragons...
business module
demo
... or at least the proposals
/songs
get
post
/{songId}
get
/file-content
get
post
/artists
get
post
/{artistId}
get
/albums
get
/albums
get
post
/{albumId}
get
/songs
get
/songs:
description: Collection of available songs in Jukebox
get:
description: Get a list of songs based on the song title.
queryParameters:
songTitle:
description: "The title of the song to search (...)"
required: true
minLength: 3
type: string
example: "Get L"
[...]
[...]
responses:
200:
body:
application/json:
example: |
"songs": [
{
"songId": "550e8400-e29b-41d4-a716-446655440000",
"songTitle": "Get Lucky"
},
{
"songId": "550e8400-e29b-41d4-a716-446655440111",
"songTitle": "Loose yourself to dance"
},
{
"songId": "550e8400-e29b-41d4-a716-446655440222",
"songTitle": "Gio sorgio by Moroder"
}
]
API Blueprint
Swagger
RAML:
RESTful API Modelling Language
https://github.com/lukehoban/es6features
function add(a: number, b: number): number {
return a + b;
}
add("32", 12);
compile error:
Argument of type 'string' is not assignable
to parameter of type 'number'.
{
"name": "myInstance",
"fullname": "MyBank default settings",
"title": "MyBank",
"api": "mock", // OR http://api.mybank
"modules": [
"core",
"search",
"transfers"
],
"languages": [
"en",
"de",
"pl"
],
"styles": "default",
"defaultLanguage": "pl",
"debugMode": false
}
JSON
specific
challenging
still being explored