raml-javascript-generator
Быстрый старт
raml-javascript-generator
— это инструмент, который создает клиенты JavaScript API из определений RAML API. Он принимает файл RAML в качестве входных данных и выводит пакет NPM.
Начнем с установки raml-javascript-generator
:
$ npm install raml-javascript-generator -g
Теперь нам нужен файл RAML, давайте воспользуемся файлом world-music-api
из репозитория raml-org/raml-examples
. На этом этапе мы можем либо сослаться на локальный RAML-файл, либо указать на удаленный с помощью URL-адреса:
$ raml-javascript-generator https://raw.githubusercontent.com/raml-org/raml-examples/e91308b/others/world-music-api/api.raml -o world-music-api
Заглянем внутрь поближе:
$ cd world-music-api/
$ ls -1 ./
INSTALL.md
README.md
index.js
package.json
Результатом является устанавливаемый пакет NPM со всеми его зависимостями, определенными в package.json
.
$ cat package.json | jq .dependencies
{
"client-oauth2": "^2.1.0",
"xtend": "^4.0.1",
"request-promise": "^4.2.2",
"request": "^2.34",
"setprototypeof": "^1.0.1",
"query-string": "^5.0.0"
}
Он также генерирует README
с основными инструкциями по использованию. Давайте взглянем на некоторые из этих инструкций:
$ grep -o '#### `.*' README.md
#### `api.get([query, [options]])`
#### `api.post([body, [options]])`
#### `entry.post([body, [options]])`
#### `entry.get([query, [options]])`
#### `songs.get([query, [options]])`
#### `songs.post([body, [options]])`
#### `songs.songId({ songId }).get([query, [options]])`
Здорово! Теперь мы можем установить сгенерированную библиотеку:
$ npm install
и использовать его в нашем коде JavaScript.
Но прежде чем играть дальше, нам нужно запустить серверную часть API. Для этого мы будем использовать osprey-mock-service
(не забудьте проверить этот osprey-mock-service
пост):
$ osprey-mock-service -f https://raw.githubusercontent.com/raml-org/raml-examples/e91308b/others/world-music-api/api.raml -p 1234
Mock service running at http://localhost:1234
Теперь, когда у нас запущен бэкэнд API, мы можем делать запросы, используя нашу библиотеку world-music-api
:
# test.js
const WorldMusicAPI = require('.')
const client = new WorldMusicAPI({baseUri: 'http://localhost:1234/v1'})
client.songs.songId({'songId': 1}).get().then((response) => {
console.log(response.body)
})
Затем запуск этого фрагмента выведет:
node test.js
{ title: 'My Song', length: 12 }