Моя предыдущая статья была об использовании webapi-парсера для преобразования форматов RAML ←› OAS. В этой статье мы более подробно рассмотрим функциональные возможности и возможности webapi-parser. Мы сможем анализировать спецификацию RAML, обрабатывать ее и извлекать поля в соответствии с требованиями.

Пример использования

Обработайте RAML и отобразите содержимое на странице API информационной панели (портале), чтобы предоставить возможность бизнес-пользователям.

о Общее количество

o Перечислите только описания API

Проверьте, соблюдаются ли передовые методы организации:

o Путь не должен содержать специальных символов — «/loan-schedule» может быть неприемлемым.

o Путь не должен содержать метод — /getOrder должен быть /orders с методом GET

o Заголовки должны иметь дефис — «x-message-id», «x-orgName-clientId»

Ознакомьтесь с приведенным ниже синтаксисом, чтобы извлечь детали из вашего RAML.

const apiModel = await wap.raml10.parse(docPath)
const resApiModel = await wap.raml10.resolve(apiModel)
const enc = resApiModel.encodes
//Main Title
console.log('Title:', enc.name.value())
// add null checks
console.log('DESCRIPTION:', enc.description.value())
console.log('Protocols:' , enc.schemes[0].value())

const ep = enc.endPoints[1]
const ep2 = enc.endPoints[8]
console.log(ep.operations[0].method.value().toUpperCase() + ' ' + ep.path.value() + ': ' + ep.operations[0].description.value())
console.log(ep2.operations[0].method.value().toUpperCase() + ' ' + ep2.path.value() + ': ' + ep2.operations[0].description.value())

Или просто переберите конечные точки и получите все детали resourcePath. Использовать API-интерфейсы платформы Anypoint, чтобы получить RAML из центра дизайна и проанализировать его, как показано, чтобы получить путь, а затем проверить строку на наличие специальных символов? Если это не соответствует стандартам вашей организации, используйте API-интерфейсы платформы Anypoint, чтобы остановить приложение в диспетчере времени выполнения? Как хочешь!

const enc = resApiModel.encodes
const end = enc.endPoints
console.log('Path Count:',end.length)
for (let i = 0; i < end.length; i++) 
{console.log(end[i].path.value())
}

В этом упражнении мы увидели, как извлекать значения из RAML. Была использована типовая банковская спецификация. Содержимое может отображаться как часть любой страницы пользовательского интерфейса, аналогичной странице консоли API. Есть несколько способов использования webapi-парсера для получения желаемых результатов. Поиграй!

Дальнейшее чтение:

https://github.com/raml-org/webapi-parser

https://www.npmjs.com/package/webapi-parser

https://raml-org.github.io/webapi-parser/js/classes/webapiparser.raml10.html