Modern restful api dls and frameworks for restful web services api schema modeling, documenting, visualizing
The given paper presents an overview of modern RESTful API description languages (belongs to interface description languages set) – OpenAPI, RAML, WADL, Slate – designed to provide a structured description of a RESTful web APIs (that is useful both to a human and for automated machine processing), w...
Gespeichert in:
Datum: | 2019 |
---|---|
Hauptverfasser: | , , |
Format: | Artikel |
Sprache: | English |
Veröffentlicht: |
Інститут програмних систем НАН України
2019
|
Schlagworte: | |
Online Zugang: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/335 |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Назва журналу: | Problems in programming |
Institution
Problems in programmingid |
pp_isofts_kiev_ua-article-335 |
---|---|
record_format |
ojs |
resource_txt_mv |
ppisoftskievua/10/4bbf78ed512bb99c6d311edef79b6f10.pdf |
spelling |
pp_isofts_kiev_ua-article-3352019-02-28T11:40:40Z Modern restful api dls and frameworks for restful web services api schema modeling, documenting, visualizing Современные языки описания веб-сервисов и фреймворки для их моделирования, документирования, визуализации Сучасні мови опису веб-сервісів та фреймворки для їх моделювання, документування, візуалізаціїї Malakhov, K.S. Kurgaev, A.P. Velychko, V.Yu. Service-Oriented Architecture; Web service; REST; RESTful API; OpenAPI; RAML; WADL; Slate UDC 004.724, 004.62 cервис-ориентированная архитектура; веб-сервис; REST; RESTful API; OpenAPI; RAML; WADL; Slate УДК 004.724, 004.62 сервіс-орієнтована архітектура; веб-сервіс; REST; RESTful API; OpenAPI; RAML; WADL; Slate УДК 004.724, 004.62 The given paper presents an overview of modern RESTful API description languages (belongs to interface description languages set) – OpenAPI, RAML, WADL, Slate – designed to provide a structured description of a RESTful web APIs (that is useful both to a human and for automated machine processing), with related RESTful web API modelling frameworks. We propose an example of the schema model of web API of the service for pre-trained distributional semantic models (word embeddings) processing. This service is a part of the “Personal Research Information System” services ecosystem – the “Research and Development Workstation Environment” class system for supporting research in the field of ontology engineering: the automated building of applied ontology in an arbitrary domain area as a main feature; scientific and technical creativity: the automated preparation of application documents for patenting inventions in Ukraine. It also presents a quick look at the relationship of Service-Oriented Architecture and Web services as well as REST fundamentals and RESTful web services; RESTful API creation process.Problems in programming 2018; 4: 59-68 В статье представлен обзор и сравнительный анализ современных языков описания веб-сервисов – OpenAPI, RAML, WADL, Slate – которые предназначены для представления структурированного описания современных веб-сервисов (веб-API) и разработаны с учетом применения как для их автоматизированной обработки описаний программными приложениями, так и для восприятия разработчиками программного обеспечения. Разработана модель (схема) веб-API сервиса процессинга предобученных дистрибутивно-семантических моделей, который является частью экосистемы сервисов "Персональной научно-исследовательской информационной системы" – системы класса Автоматизированное рабочее место научных исследований АРМ-НИ поддержки научно-технического творчества и исследований в области онтологического инжиниринга. Приведен короткий обзор современного положения веб-сервисов в составе Сервис-ориентированной архитектуры и на их взаимодействия. Также представлена методика описания веб сервисов при помощи современного языка структурного описания взаимодействия интерфейсов сервисов.Problems in programming 2018; 4: 59-68 Бази даних, веб-сайти, веб-застосунки, бізнес-орієнтоване програмне забезпечення та сервіси повинні обмінюватися даними. Це досягається шляхом визначення стандартних форматів даних, таких як розширювана мова розмітки XML, або запис об’єктів JavaScript JSON, а також протоколів передачі даних або веб-сервісів, таких як Простий протокол доступу до об'єктів SOAP або більш популярний сьогодні –"передача репрезентативного стану" REST. Розробникам часто доводиться розробляти свої власні інтерфейси прикладного програмування застосунків API, щоб працювати з застосунками, інтегруючи певну бізнес-логіку навколо операційних систем або серверів. В статті наведено огляд сучасних мов опису веб-сервісів – OpenAPI, RAML, WADL, Slate – які призначені для подання структурованого опису сучасних веб-сервісів (веб-API), як для їх автоматизованої обробки програмними застосунками, так і для сприйняття розробником програмного забезпечення. Розроблено модель (схему) веб-API сервісу процесінгу дистрибутивно-семантичних моделей, який є частиною екосистеми сервісів "Персональної науково-дослідницької інформаційної системи" – системи класу Автоматизоване робоче місце наукових досліджень АРМ-НД підтримки науково-технічної творчості та досліджень в області онтологічного інжинірингу.Представлено короткий погляд на сучасне становище веб-сервісів в складі Сервіс-орієнтованої архітектури та на їх взаємодію. Також представлена методика опису веб-сервісів за допомогою сучасної мови структурного опису взаємодії інтерфейсів сервісів.Problems in programming 2018; 4: 59-68 Інститут програмних систем НАН України 2019-02-28 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/335 10.15407/pp2018.04.059 PROBLEMS IN PROGRAMMING; No 4 (2018); 59-68 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2018); 59-68 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2018); 59-68 1727-4907 10.15407/pp2018.04 en https://pp.isofts.kiev.ua/index.php/ojs1/article/view/335/335 Copyright (c) 2018 PROBLEMS OF PROGRAMMING |
institution |
Problems in programming |
baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
datestamp_date |
2019-02-28T11:40:40Z |
collection |
OJS |
language |
English |
topic |
Service-Oriented Architecture Web service REST RESTful API OpenAPI RAML WADL Slate UDC 004.724 004.62 |
spellingShingle |
Service-Oriented Architecture Web service REST RESTful API OpenAPI RAML WADL Slate UDC 004.724 004.62 Malakhov, K.S. Kurgaev, A.P. Velychko, V.Yu. Modern restful api dls and frameworks for restful web services api schema modeling, documenting, visualizing |
topic_facet |
Service-Oriented Architecture Web service REST RESTful API OpenAPI RAML WADL Slate UDC 004.724 004.62 cервис-ориентированная архитектура веб-сервис REST RESTful API OpenAPI RAML WADL Slate УДК 004.724 004.62 сервіс-орієнтована архітектура веб-сервіс REST RESTful API OpenAPI RAML WADL Slate УДК 004.724 004.62 |
format |
Article |
author |
Malakhov, K.S. Kurgaev, A.P. Velychko, V.Yu. |
author_facet |
Malakhov, K.S. Kurgaev, A.P. Velychko, V.Yu. |
author_sort |
Malakhov, K.S. |
title |
Modern restful api dls and frameworks for restful web services api schema modeling, documenting, visualizing |
title_short |
Modern restful api dls and frameworks for restful web services api schema modeling, documenting, visualizing |
title_full |
Modern restful api dls and frameworks for restful web services api schema modeling, documenting, visualizing |
title_fullStr |
Modern restful api dls and frameworks for restful web services api schema modeling, documenting, visualizing |
title_full_unstemmed |
Modern restful api dls and frameworks for restful web services api schema modeling, documenting, visualizing |
title_sort |
modern restful api dls and frameworks for restful web services api schema modeling, documenting, visualizing |
title_alt |
Современные языки описания веб-сервисов и фреймворки для их моделирования, документирования, визуализации Сучасні мови опису веб-сервісів та фреймворки для їх моделювання, документування, візуалізаціїї |
description |
The given paper presents an overview of modern RESTful API description languages (belongs to interface description languages set) – OpenAPI, RAML, WADL, Slate – designed to provide a structured description of a RESTful web APIs (that is useful both to a human and for automated machine processing), with related RESTful web API modelling frameworks. We propose an example of the schema model of web API of the service for pre-trained distributional semantic models (word embeddings) processing. This service is a part of the “Personal Research Information System” services ecosystem – the “Research and Development Workstation Environment” class system for supporting research in the field of ontology engineering: the automated building of applied ontology in an arbitrary domain area as a main feature; scientific and technical creativity: the automated preparation of application documents for patenting inventions in Ukraine. It also presents a quick look at the relationship of Service-Oriented Architecture and Web services as well as REST fundamentals and RESTful web services; RESTful API creation process.Problems in programming 2018; 4: 59-68 |
publisher |
Інститут програмних систем НАН України |
publishDate |
2019 |
url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/335 |
work_keys_str_mv |
AT malakhovks modernrestfulapidlsandframeworksforrestfulwebservicesapischemamodelingdocumentingvisualizing AT kurgaevap modernrestfulapidlsandframeworksforrestfulwebservicesapischemamodelingdocumentingvisualizing AT velychkovyu modernrestfulapidlsandframeworksforrestfulwebservicesapischemamodelingdocumentingvisualizing AT malakhovks sovremennyeâzykiopisaniâvebservisovifrejmvorkidlâihmodelirovaniâdokumentirovaniâvizualizacii AT kurgaevap sovremennyeâzykiopisaniâvebservisovifrejmvorkidlâihmodelirovaniâdokumentirovaniâvizualizacii AT velychkovyu sovremennyeâzykiopisaniâvebservisovifrejmvorkidlâihmodelirovaniâdokumentirovaniâvizualizacii AT malakhovks sučasnímoviopisuvebservísívtafrejmvorkidlâíhmodelûvannâdokumentuvannâvízualízacííí AT kurgaevap sučasnímoviopisuvebservísívtafrejmvorkidlâíhmodelûvannâdokumentuvannâvízualízacííí AT velychkovyu sučasnímoviopisuvebservísívtafrejmvorkidlâíhmodelûvannâdokumentuvannâvízualízacííí |
first_indexed |
2025-07-17T09:45:01Z |
last_indexed |
2025-07-17T09:45:01Z |
_version_ |
1838409303364468736 |
fulltext |
Моделі та засоби систем баз даних і знань
© Kyrylo Malakhov, Aleksandr Kurgaev, Vitalii Velychko, 2018
ISSN 1727-4907. Проблеми програмування. 2018. № 4 59
UDC 004.724, 004.62 https://doi.org/10.15407/pp2018.04.059
Kyrylo Malakhov, Aleksandr Kurgaev, Vitalii Velychko
MODERN RESTFUL API DLS AND FRAMEWORKS
FOR RESTFUL WEB SERVICES API SCHEMA MODELING,
DOCUMENTING, VISUALIZING
The given paper presents an overview of modern RESTful API description languages (belongs to interface
description languages set) – OpenAPI, RAML, WADL, Slate – designed to provide a structured description
of a RESTful web APIs (that is useful both to a human and for automated machine processing), with related
RESTful web API modelling frameworks. We propose an example of the schema model of web API of the
service for pre-trained distributional semantic models (word embedding’s) processing. This service is a part
of the “Personal Research Information System” services ecosystem – the “Research and Development
Workstation Environment” class system for supporting research in the field of ontology engineering: the au-
tomated building of applied ontology in an arbitrary domain area as a main feature; scientific and technical
creativity: the automated preparation of application documents for patenting inventions in Ukraine. It also
presents a quick look at the relationship of Service-Oriented Architecture and Web services as well as REST
fundamentals and RESTful web services; RESTful API creation process.
Key words: Service-Oriented Architecture, Web service, REST, RESTful API, OpenAPI, RAML, WADL,
Slate.
Introduction
Databases, web sites, business applica-
tions and services need to exchange data. This
is accomplished by defining standard data
formats such as Extensible Markup Language
(XML) or JavaScript Object Notation
(JSON), as well as transfer protocols or Web
services such as the Simple Object Access
Protocol (SOAP) or the more popular today –
Representational State Transfer (REST). De-
velopers often have to design their own Ap-
plication Programming Interfaces (APIs) to
make applications work while integrating
specific business logic around operating sys-
tems, or servers. This paper introduces these
concepts with a focus on the RESTful APIs
and presents an overview of modern RESTful
API description languages (RESTful API
DLs): OpenAPI Specification, RAML, and
the example of modeling the schema of web
API of the service for pre-trained distribu-
tional semantic models (word embeddings)
processing (is a part of the “Personal Re-
search Information System” [1] services eco-
system – the “Research and Development
Workstation Environment” [2] class system
for supporting research in the field of ontolo-
gy engineering: the automated building of ap-
plied ontology in an arbitrary domain area as
a main feature; scientific and technical crea-
tivity: the automated preparation of applica-
tion documents for patenting inventions in
Ukraine) with related RESTful web API
modelling frameworks.
Service-Oriented Architecture style
and Web services
According to the Open Group [3] (a
global consortium that develops open, ven-
dor-neutral information technology stand-
ards), an SOA is an architectural style that
supports service orientation. Service orienta-
tion is a way of thinking in terms of the out-
comes of services, and how they can be de-
veloped and combined. In this definition, a
service is a repeatable business activity that
can be logically represented; the Open Group
gives the examples: “check customer credit,”
and “provide weather data.” Further, a service
is self-contained, may be composed of other
services, and consumers of the service treat
the service as a black box. SOA is a distinct
architectural style which is a major improve-
ment over earlier ideas, although it includes
some of the earlier ideas. Also, traditional ar-
chitectural methods must be employed in or-
der to obtain maximum benefit from using
SOA.
http://dx.doi.org/10.7124/bc.000027
Моделі та засоби систем баз даних і знань
60
Another definition of Service-Oriented
Architecture comes from [4]: a paradigm for
organizing and utilizing distributed capabili-
ties that may be under the control of different
ownership domains. It provides a uniform
means to offer, discover, interact with and use
capabilities to produce desired effects con-
sistent with measurable preconditions and ex-
pectations. According to [4], the focus of
SOAs is to perform a task (business function).
This is different from some other paradigms,
such as object-oriented architectures, where
the focus is more on structure of the solution
in the case of an object-oriented architecture,
the focus is on how to package data inside an
object. SOAs address ownership boundaries
through service descriptions and service inter-
faces. SOA provides reuse of externally de-
veloped frameworks by providing easy in-
teroperability between systems. Generally
speaking, in order to perform a task, an SOA
groups services on different systems, possibly
running on different operating systems, possi-
bly written using different programming lan-
guages. Most current SOA-based applications
employ an asynchronous client/server-type
architectural style – asynchronous event-
driven architectural style [5]. Event-driven
SOA (also known as SOA 2.0) is the current
and advanced form of SOA. In this approach
at present, unlike the older SOA approach
where services used to be designed as pre-
defined processes, the events generally trigger
the execution of activities. The asynchronous
event-driven architectural style is better for
real time or proactive systems, since business
processes are treated as a sequence of events,
and therefore different business processes that
have little relationship with each other, except
for a few individual shared tasks, do not have
to obey the same kind of centralized man-
agement. In an asynchronous event-driven
architecture, an event message carries a state
change to an event server. The event server
passes these events along to the servers, pos-
sibly with value added. Servers may then
generate messages for other event servers (of-
ten calls “publish/subscribe” architecture).
More detailed in-depth look at the current
state of SOA presented in [6, 7].
Figure 1 uses a Venn diagram to illus-
trate the relationship between SOA and Web
services. The overlapping area in the center
represents SOA using Web services for con-
nections. The nonoverlapping area of Web
services represents that Web services can be
used for connections, but connections alone
do not make for an SOA. The non-
overlapping area of SOA indicates that an
SOA can use Web services as well as connec-
tions other than Web services (the original
specifications of CORBA and DCOM are ex-
amples).
Figure 1. Relationship of Web services
and SOA
Key to SOA is the identification and
design of services. The idea is that services
should be designed in such a way that they
become components that can be assembled in
multiple ways to support or automate business
functions. It is not necessarily easy to proper-
ly identify and design services. When done
well, the services allow an organization to
quickly assemble services – or modify the as-
sembly of services – of add or modify the sup-
port or automation of business functions. Here
are basic concepts related to services [8].
Atomic service. An atomic service
is a well-defined, self-contained function that
does not depend on the context or state of
other services. Generally, an atomic service
would be seen as fine grained or having a fin-
er granularity.
Composite service. A composite
service is an assembly of atomic or other
composite services. The ability to assemble
Моделі та засоби систем баз даних і знань
61
services is referred to as composability. Com-
posite services are also referred to as com-
pound services. Generally, a composite ser-
vice would be seen as coarse grained or hav-
ing a larger granularity.
Loosely coupled. This is a design
concept where the internal workings of one
service are not “known” to another service.
All that needs to be known is the external be-
havior of the service. This way, the underly-
ing programming of a service can be modified
and, as long as external behavior has not
changed, anything that uses that service con-
tinues to function as expected. This is similar
to the concept of information hiding that has
been used in computer science for a long
time.
The design challenge is to find a bal-
ance between fine-grained and coarse-grained
services to minimize communication over-
head yet keep the services loosely coupled.
Services are assembled to support or
automate business functions. Figure 2 illus-
trates the assembly of services. This repre-
sents an SOA. Web services are used to con-
nect the services in an SOA [8].
Figure 2. Assembly of services into an SOA
It is easy to imagine that we can reas-
semble the same services with other services
to achieve a different functionality. This abil-
ity to change the assembly of services is one
way that an SOA can quickly adapt to chang-
ing business needs.
RESTful architectural style and
RESTful web services
According to Fielding [9], the REST-
ful architectural style focuses on: “...the roles
of components, the constraints upon their in-
teraction with other components, and their
interpretation of significant data elements...”.
He coined the term “REST” an architectural
style for distributed hypermedia systems. Put
simply, REST (short for Representational
State Transfer) is an architectural style de-
fined to help create and organize distributed
systems. The key word from that definition
should be “style,” because an important as-
pect of REST is that it is an architectural style
– not a guideline, not a standard, or anything
that would imply that there are a set of hard
rules to follow in order to end up having a
RESTful architecture.
The RESTful architectural style con-
sists of constraints on data, constraints on the
interpretation of data, constraints on compo-
nents, and constraints on connectors between
components.
The RESTful architectural style pos-
sesses the following constraints [9].
Client-Server. The separation of con-
cerns is the core theme of the Web’s client-
server constraints. The Web is a client-server-
based system, in which clients and servers
have distinct parts to play. They may be im-
plemented and deployed independently, using
any language or technology, so long as they
conform to the Web’s uniform interface.
Stateless. The client-server interaction
is stateless. There is no stored context on the
server. Any session information must be kept
by the client.
Cacheable. Data in a response (a re-
sponse to a previous request) is labeled as
cacheable or non-cacheable. If it is cacheable,
the client (or an intermediary) may reuse that
for the same kind of request in the future.
Caching response data can help to reduce cli-
ent-perceived latency, increase the overall
availability and reliability of an application,
and control a web server’s load. In a word,
caching reduces the overall cost of the Web.
Uniform Interface. There is a uniform
interface between components. In practice,
there are four interface constraints: resource
identification – requests identify the resources
they are operating on (by a URI, for exam-
ple); resource manipulation through the repre-
sentation of the resource – when a client or
server that has access to a resource, it has
enough information based on understanding
Services
Web services
Моделі та засоби систем баз даних і знань
62
the representation of the resource to be able to
modify that resource; messages are self-
descriptive – the message contains enough
information to allow a client or server to han-
dle the message, this is normally done
through the use of Internet Media types
(MIME types); use of hypermedia to change
the state of the application – for example, the
server provides hyperlinks that the client uses
to make state transitions.
Layered System. Components are or-
ganized in hierarchical layers; the compo-
nents are only aware of the layer within which
the interaction is occurring. Thus, a client
connecting to a server is not aware of any in-
termediate connections.
Code-on-Demand. The Web makes
heavy use of code-on-demand, a constraint
which enables web servers to temporarily
transfer executable programs, such as scripts
or plug-ins, to clients. Code-on-demand tends
to establish a technology coupling between
web servers and their clients, since the client
must be able to understand and execute the
code that it downloads on-demand from the
server. For this reason, code-on-demand is the
only constraint of the Web’s architectural
style that is considered optional.
So, it’s pretty clear that the RESTful
web services meet the constraints of the
RESTful architecture. Summarizing, a REST-
ful web service is client/server-based, does
not store state. It accesses resources (web
pages or data) located at a URL. The results
of a request from client to server can be
cached in the client. It has a uniform interface
with self-descriptive messages, based on hy-
permedia. Also, the client and server aren’t
aware of intermediate connections between
the two of them.
RESTful API creation process –
designing API and creating
a schema modeling
As UI is to UX (User Experience),
API is to APX (Application Programming
Experience). Like optimizing for UX (User
Experience) has become a primary concern in
UI development, also optimizing for APX
(API User Experience) should be a primary
concern in API development.
The process of RESTful API creation
must contain all of the following steps:
Determining business value.
Choosing metrics.
Defining use cases.
Designing API and creating a
schema model.
A detailed description of the RESTful
API creation process is presented in [8, 10,
11]. In our paper we will focus on the design-
ing API and creating a schema model. Model-
ing the schema for your API means creating a
design document that can be shared with oth-
er teams, customers, or executives. A schema
model is a contract between your organization
and the clients who will be using it. A schema
model is essentially a contract describing
what the API is, how it works, and exactly
what the endpoints are going to be. Think of it
as a map of the API, a user-readable and a
machine-readable (automated machine pro-
cessing) description of each endpoint, which
can be used to discuss the API before any
code is written. With a schema model, we can
ensure that everyone has a shared understand-
ing of what the API will do and how each re-
source will be represented when the API is
complete. Each of the schema modeling lan-
guages has tools available to automate testing
or code creation based on the schema model
you’ve created. But even without this func-
tionality, the schema model helps us have a
solid understanding of the API before a single
line of code is written. Figure 3 shows the
API Modeling framework where you have
API specifications defined and generate API
documentation [12]. Also, generate server and
client source code.
Next, we’ll look at the specifics of two
of the main schema modeling frameworks and
markup languages:
RESTful API Modeling Language
(RAML), which supports Markdown.
OpenAPI specification (OpenAPI)
format (previously Swagger), which supports
JSON and YAML.
Моделі та засоби систем баз даних і знань
63
Figure 3. API modelling
RAML and OpenAPI: an overview
The RESTful API Modeling Language
(RAML) [13] is a concise, expressive lan-
guage for describing RESTful APIs. Built on
broadly used standards such as YAML
(YAML stands for Yet Another Markup Lan-
guage, and is a generic specification lan-
guage) and JSON, RAML is a non-prop-
rietary, vendor-neutral open spec. RAML was
created around the notion of design-first de-
velopment [12]. Although all of the specifica-
tion languages can be used this way, RAML
was designed this way from the outset. It
makes it easy to create a code development
life cycle that supports the development of
APIs that meet your business goals and use
cases. The RAML website [14] has good doc-
umentation, including strategies, best practic-
es, and practical instruction. You’ll find a
basic tutorial for the RAML language itself at
[14]. RAML has good online modeling tools,
also, it has been open-sourced along with
tools and parsers for common languages. The
development of RAML will be overseen by a
steering committee of API and UX practition-
ers, and there is an emerging ecosystem of
third-party tools being developed around
RAML [15]. Consider the pros and cons of
RAML [16]. Pros: single specification to
maintain; strong, visual-based integrated de-
velopment environment and online tooling
with collaboration focus; allows for design
patterns; easy to get started. Cons: lacks
strong documentation and tutorials outside of
specification; limited code reuse/extensions;
multiple specifications required for several
tools, including dev and QA; poor tooling
support for newer versions.
The best way to get started with
RAML is to use the RAML API Designer
with free account on the Anypoint system,
where MuleSoft maintains its RAML specif-
ic tools [17]. RAML excels at supporting the
entire API's lifecycle. It provides a balance
between developer tooling and technical
writers without taking away from one or the
other. It also is the fastest framework to
ramp up your project. MuleSoft maintains
some open source tools that can extend and
improve experience with a RAML specifica-
tion. The API Designer that helps you design
your schema from the ground up. An API
Console graphical user interface is available
that displays the structure and patterns and
creates interactive documentation. The API
Notebook provides a way to use JavaScript
to test and explore APIs and create Mark-
down versions of the API to share on
GitHub. You’ll find hundreds of additional
Client
Source
Server
Source
JSON,
YAML
HTML
REST client
RESTful Web service
API
specification
(machine-readable)
API
documentation,
visualising
(human-readable)
Generate API specification
Generate client source
Generate server so
urce
Generate API documentation
Generate
API documentation
Моделі та засоби систем баз даних і знань
64
RAML tools at GitHub and on the [13] web-
site, which can help you create and leverage
the schemas you build.
The OpenAPI Specification OpenAPI,
originally known as the Swagger Specifica-
tion, is a specification for machine-readable
interface files for describing, producing, con-
suming, and visualizing RESTful web ser-
vices. Originally part of the Swagger frame-
work [18], it became a separate project in
2016, overseen by the OpenAPI Initiative, an
open source collaborative project of the Linux
Foundation [19]. Swagger and some other
tools can generate code, documentation and
test cases given an interface file. OpenAPI
was one of the earliest schema modeling
frameworks available, and it has gone through
a few revisions. Version 3.0 is the most recent
one as of this writing. During the develop-
ment of the various versions, they’ve incorpo-
rated many of the best practices uncovered by
the other two languages, and OpenAPI re-
mains one of the innovative frameworks
available. OpenAPI supports both JSON and
YAML for its schema markup. Consider the
pros and cons of OpenAPI [16]. Pros: a large
community and support-base; high adoption
rate, meaning lots of documentation; strong
framework support; has the largest language
support of any opensource framework. Cons:
requires multiple specifications for some
tools, including dev and QA; doesn't allow for
code reuse, includes, or extensions; lacks
strong developer tools; requires schemas for
all responses.
OpenAPI has a very strong modeling
language for defining exactly what’s expected
of the system – very useful for testing and
creating coding stubs for a set of APIs.
In comparison to one another, both
OpenAPI and RAML are very capable, com-
patible with many languages.
Both offer compatibility in: .NET,
Go, Haskell, Java, JavaScript, Node.js, PHP,
Python, Ruby, Scala.
OpenAPI’s additional capabilities:
Clojure, Coldfusion, D, Eiffel, Erlang,
Groovy, and Typescript.
RAML's additional capabilities:
Elixer and Pearl.
Both languages are strong and able
to produce excellent APIs despite their dif-
ferences. Their key differences are what can
help you determine which is best for your
business.
OpenAPI’s best features are its strong
documentation and compatibility with lesser
used languages. It provides a fast setup and a
large support community. The big takeaway
for OpenAPI is that it is designed as a bot-
tom-up specification. OpenAPI specifies the
behavior which affects the API to create more
complex, interlocking systems.
RAML excels at supporting the entire
API’s lifecycle. It provides a balance between
developer tooling and technical writers with-
out taking away from one or the other. It also
is the fastest framework to ramp up your pro-
ject. The main difference between the two is
that RAML is a top-down specification,
meaning it breaks down the system and ex-
plains the behavior of the various sub-
components.
The main characteristics of both
RESTful API DLs are presented in the com-
parative table.
There are, of course, alternatives. Two
of the most popular are WADL [20] and Slate
[21]. Each have their own caveats, of course.
WADL is incredibly time consuming to create
descriptions with, and the linking methodolo-
gy leaves much to be desired when compared
to any of the three specifications discussed
throughout this article. Slate, similarly, has
the caveat of having untested or unproven ap-
proaches due to the relatively small userbase,
despite the fact that it handles documentation
much like API Blueprint [22] does, and gen-
erates a pretty interface for it all.
These alternatives are interesting, to
be sure, but their low adoption rates, issues
inherent to their structure, and fundamental
caveats make a potentially unstable bet. With
many strategies in the modern IT workforce
focusing heavily on rapid development and
deployment, untested approaches have the
distinct possibility of massively lowered qual-
ity as the demand rises exponentially.
As part of the development of the
“Personal Research Information System”
[1, 2], the API schemas of its services was
Моделі та засоби систем баз даних і знань
65
Table. Сomparison of modern RESTful API DLs and frameworks
Description
Language
RAML OpenAPI WADL Slate
Software
license
Apache 2.0 Apache 2.0 CDDL 1.1 Apache 2.0
Format
YAML
(Markdown)
YAML, JSON XML Markdown
Open source yes yes yes yes
Commercial
offering
yes yes no no
Sponsored by
Mulesoft, Cisco,
VMware, Paypal,
AngularJS, Box
Open API Initia-
tive, Google, IBM,
Mcrosoft
Oracle -
Current release 1.0 3.0 - 2.3.1
Design
strategy
API-first Existing API Existing API Existing API
References http://raml.org http://swagger.io
https://github.com
/javaee/wadl
https://github.com
/lord/slate
Code
generation
yes yes no no
Documentation yes yes yes yes
Visual-based
IDE
yes yes no yes
Online IDE yes yes no no
Editors
API Workbench
(IDE based on
Atom)
Swagger Tools
(editor, codegen,
UI)
no Local web editor
modeled with OpenAPI, in particular, the
schema model of web API of the service for
pre-trained distributional semantic models
(word embeddings) (DSM) processing. With
this web service API is possible to: calculate
semantic similarity between pair of terms (in-
cluding multiple-word terms, one-word terms,
words) within the chosen DSM; compute a
list of nearest semantic associates for terms
(including multiple-word terms, one-word
terms, words) within the chosen DSM; find
the center of lexical cluster for a set of terms
(including multiple-word terms, one-word
terms, words) within the chosen DSM; calcu-
late semantic similarity between two sets of
terms (including multiple-word terms, one-
word terms, words) within the chosen DSM.
The source code and the service API
schema model description are available via
GitHub repository [23].
https://github.com/
https://github.com/
Моделі і засоби систем баз даних та знань
66
Conclusion
OpenAPI as well as RAML have very
much in common. Projects relying on the ex-
tensive language support and tool integrations
will tend to OpenAPI. But if the language
support is not crucial as implementations are
foremost done in standard languages such as
Java, RAML is an equivalent option. OpenA-
PI and RAML both have a large community
and are backed by market leaders, so it will
never be wrong choosing one of them for API
documentation.
Recently, several APIs contributors
(members of 3Scale, Apigee, Capital One,
Google, IBM, Intuit, Microsoft, PayPal,
Restlet and SmartBear) have announced the
Open API Initiative [19], which aims at
standardizing the way REST APIs are de-
scribed. This initiative will extend the Swag-
ger specification and format to create an open
technical community where members can eas-
ily contribute to building a vendor-neutral,
portable and open specification for providing
metadata for RESTful APIs. We hope this
initiative will also promote and facilitate the
adoption and use of a standard API Descrip-
tion Language.
References
1. Palagin O.V., Velychko V.Yu., Malakhov
K.S. and Shchurov O.S. Personal research in-
formation system. About developing the
methods for searching patent analogs of in-
vention. Computer means, networks and sys-
tems. 2017. N 16. P. 5–13. (in Ukrainian).
2. Palagin O.V., Velychko V.Yu., Malakhov
K.S. and Shchurov O.S. (2018). Research and
development workstation environment: the
new class of current research information sys-
tems. Problems in programming. N 2–3. P.
289–298.
3. Open Group. Service Oriented Architecture:
What is SOA? [Online] Available from:
https://www.opengroup.org/soa/source-book/
soa/p1.htm [Accessed: 05.11.2018]
4. Mackenzie C.M., Laskey K., McCabe F.,
Brown P.F., Metz R. 2006. OASIS Reference
Model for Service Oriented Architecture 1.0.
OASIS. [Online] Available from:
https://www.oasis-open.org/committees/
download.php/19679/soa-rm-cs.pdf [Ac-
cessed: 05.11.2018]
5. Chou D. Using Events in Highly Distributed
Architectures. The Architecture Journal. [On-
line] Available from: https://msdn.microsoft.
com/en-us/library/ dd129913.aspx [Accessed:
05.11.2018]
6. Bhowmik S. Cloud Computing. Cambridge
University Press. 2017. 462 p.
7. Etzkorn L.H. Introduction to Middleware:
Web Services, Object Components, and Cloud
Computing. CRC Press, 2017. 662 p.
8. Barry D.K. Web Services, Service-Oriented
Architectures, and Cloud Computing: The
Savvy Manager’s Guide. Morgan Kaufmann
is an imprint of Elsevier, 2013. 248 p.
9. Fielding R. 2000. Architectural Styles and the
Design of Network-Based Software Architec-
tures. Ph.D. Disser- tation, University of Cali-
fornia-Irvine. [Online] Avaliable from:
https://www.ics.uci.edu/~fielding/pubs/dissert
ation/top.htm [accessed 05.11.2018]
10. Pereira C.R. Building APIs with Node.js.
Apress, 2016. 135 p.
11. Doglio F. REST API Development with
Node.js. Apress, 2018. 323 p.
12. Patni S. Pro RESTful APIs: Design, Build and
Integrate with REST, JSON, XML and JAX-
RS. Apress, 2017. 126 p.
13. RESTful API Modeling Language (RAML).
[Online] Available from: https://raml.org/
[Accessed: 05.11.2018]
14. RAML 100 Tutorial | RAML. [Online] Avail-
able from: https://raml.org/developers/raml-
100-tutorial [Accessed: 05.11.2018]
15. API Design Tooling From RAML. [Online]
Available from:
http://apievangelist.com/2014/ 03/01/api-
design-tooling-from-raml/ [Accessed:
05.11.2018]
16. Swagger (OAS) vs. RAML - Which is Better
for Building APIs? [Online] Available from:
https://blog.vsoftconsulting.com/blog/is-raml-
or-swagger-better-for-building-apis [Ac-
cessed: 05.11.2018]
17. Anypoint Platform. [Online] Available from:
https://anypoint.mulesoft.com/ [Accessed:
05.11.2018]
18. The Best APIs are Built with Swagger Tools |
Swagger. [Online] Available from:
https://swagger.io/ [Accessed: 05.11.2018]
19. OpenAPI Initiative Charter. [Online] Availa-
ble from: https://www.openapis.org/partici-
pate/how-to-contribute/governance [Ac-
cessed: 05.11.2018]
https://www.opengroup.org/soa/source-book/%20soa/p1.htm
https://www.opengroup.org/soa/source-book/%20soa/p1.htm
https://www.oasis-open.org/committees/%20download.php/19679/soa-rm-cs.pdf
https://www.oasis-open.org/committees/%20download.php/19679/soa-rm-cs.pdf
https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
https://raml.org/
https://raml.org/developers/raml-100-tutorial
https://raml.org/developers/raml-100-tutorial
http://apievangelist.com/2014/%2003/01/api-design-tooling-from-raml/
http://apievangelist.com/2014/%2003/01/api-design-tooling-from-raml/
https://blog.vsoftconsulting.com/blog/is-raml-or-swagger-better-for-building-apis
https://blog.vsoftconsulting.com/blog/is-raml-or-swagger-better-for-building-apis
https://anypoint.mulesoft.com/
https://swagger.io/
https://www.openapis.org/participate/how-to-contribute/governance
https://www.openapis.org/participate/how-to-contribute/governance
Моделі і засоби систем баз даних та знань
67
20. Web Application Description Language.
[Online] Available from: https://www.w3.org/
Submission/wadl/ [Accessed: 05.11.2018]
21. Lord/slate: Beautiful static documentation for
your API. [Online] Available from:
https://github.com/lord/slate [Accessed:
05.11.2018]
22. API Blueprint | API Blueprint. [Online]
Available from: https://apiblueprint.org/ [Ac-
cessed: 05.11.2018]
23. Malakhovks/ds-rest-api. GitHub. [Online]
Available from: https://github.com/mala-
khovks/ds-rest-api [Accessed: 05.11.2018]
Література
1. Палагін О.В., Величко В.Ю., Малахов К.С.,
Щуров О.С. Автоматизоване робоче місце
наукового дослідника. До питання розроб-
ки методів пошуку аналогів патентної до-
кументації винаходу. Комп'ютерні засоби,
мережі та системи. 2017. № 16. С. 5–13.
2. Palagin O.V., Velychko V.Yu., Malakhov
K.S. and Shchurov O.S. (2018). Research and
development workstation environment: the
new class of current research information sys-
tems. Problems in programming. N 2–3.
P. 289–298.
3. Open Group. Service Oriented Architecture:
What is SOA? [Online] Available from:
https://www.opengroup.org/soa/source-book/
soa/p1.htm [Accessed: 05.11.2018]
4. Mackenzie C.M., Laskey K., McCabe F.,
Brown P.F., Metz R. 2006. OASIS Reference
Model for Service Oriented Architecture 1.0.
OASIS. [Online] Available from:
https://www.oasis-open.org/committees/
download.php/19679/soa-rm-cs.pdf [Ac-
cessed: 05.11.2018]
5. Chou D. Using Events in Highly Distributed
Architectures. The Architecture Journal. [On-
line] Available from: https://msdn.microsoft.
com/en-us/library/ dd129913.aspx [Accessed:
05.11.2018]
6. Bhowmik S. Cloud Computing. Cambridge
University Press. 2017. 462 p.
7. Etzkorn L.H. Introduction to Middleware:
Web Services, Object Components, and Cloud
Computing. CRC Press, 2017. 662 p.
8. Barry D.K. Web Services, Service-Oriented
Architectures, and Cloud Computing: The
Savvy Manager’s Guide. Morgan Kaufmann
is an imprint of Elsevier, 2013. 248 p.
9. Fielding R. 2000. Architectural Styles and the
Design of Network-Based Software Architec-
tures. Ph.D. Disser- tation, University of Cali-
fornia-Irvine. [Online] Avaliable from:
https://www.ics.uci.edu/~fielding/pubs/dissert
ation/top.htm [accessed 05.11.2018]
10. Pereira C.R. Building APIs with Node.js.
Apress, 2016. 135 p.
11. Doglio F. REST API Development with
Node.js. Apress, 2018. 323 p.
12. Patni S. Pro RESTful APIs: Design, Build and
Integrate with REST, JSON, XML and JAX-
RS. Apress, 2017. 126 p.
13. RESTful API Modeling Language (RAML).
[Online] Available from: https://raml.org/
[Accessed: 05.11.2018]
14. RAML 100 Tutorial | RAML. [Online] Avail-
able from: https://raml.org/developers/raml-
100-tutorial [Accessed: 05.11.2018]
15. API Design Tooling From RAML. [Online]
Available from:
http://apievangelist.com/2014/ 03/01/api-
design-tooling-from-raml/ [Accessed:
05.11.2018]
16. Swagger (OAS) vs. RAML - Which is Better
for Building APIs? [Online] Available from:
https://blog.vsoftconsulting.com/blog/is-raml-
or-swagger-better-for-building-apis [Ac-
cessed: 05.11.2018]
17. Anypoint Platform. [Online] Available from:
https://anypoint.mulesoft.com/ [Accessed:
05.11.2018]
18. The Best APIs are Built with Swagger Tools |
Swagger. [Online] Available from:
https://swagger.io/ [Accessed: 05.11.2018]
19. OpenAPI Initiative Charter. [Online] Availa-
ble from: https://www.openapis.org/partici-
pate/how-to-contribute/governance [Ac-
cessed: 05.11.2018]
20. Web Application Description Language.
[Online] Available from: https://www.w3.org/
Submission/wadl/ [Accessed: 05.11.2018]
21. Lord/slate: Beautiful static documentation for
your API. [Online] Available from:
https://github.com/lord/slate [Accessed:
05.11.2018]
22. API Blueprint | API Blueprint. [Online]
Available from: https://apiblueprint.org/ [Ac-
cessed: 05.11.2018]
23. Malakhovks/ds-rest-api. GitHub. [Online]
Available from: https://github.com/mala-
khovks/ds-rest-api [Accessed: 05.11.2018]
Data received 20.09.2018
https://www.w3.org/%20Submission/wadl/
https://www.w3.org/%20Submission/wadl/
https://github.com/lord/slate
https://apiblueprint.org/
https://github.com/malakhovks/ds-rest-api
https://github.com/malakhovks/ds-rest-api
javascript:void(0)
javascript:void(0)
javascript:void(0)
javascript:void(0)
https://www.opengroup.org/soa/source-book/%20soa/p1.htm
https://www.opengroup.org/soa/source-book/%20soa/p1.htm
https://www.oasis-open.org/committees/%20download.php/19679/soa-rm-cs.pdf
https://www.oasis-open.org/committees/%20download.php/19679/soa-rm-cs.pdf
https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
https://raml.org/
https://raml.org/developers/raml-100-tutorial
https://raml.org/developers/raml-100-tutorial
http://apievangelist.com/2014/%2003/01/api-design-tooling-from-raml/
http://apievangelist.com/2014/%2003/01/api-design-tooling-from-raml/
https://blog.vsoftconsulting.com/blog/is-raml-or-swagger-better-for-building-apis
https://blog.vsoftconsulting.com/blog/is-raml-or-swagger-better-for-building-apis
https://anypoint.mulesoft.com/
https://swagger.io/
https://www.openapis.org/participate/how-to-contribute/governance
https://www.openapis.org/participate/how-to-contribute/governance
https://www.w3.org/%20Submission/wadl/
https://www.w3.org/%20Submission/wadl/
https://github.com/lord/slate
https://apiblueprint.org/
https://github.com/malakhovks/ds-rest-api
https://github.com/malakhovks/ds-rest-api
Моделі і засоби систем баз даних та знань
68
About the authors:
Kyrylo Malakhov,
Junior Research Fellow.
38 Ukrainian publications,
3 International publications,
H-index: Google Scholar – 4.
http://orcid.org/0000-0003-3223-9844.
Aleksandr Kurgaev,
Doctor of Technical Science,
Professor, Leading Researcher of Department
205 at Glushkov Institute of Cybernetics.
Author of more than 240 scientific works,
including 8 monographs,
100 Patents and Author’s Certificates
for innovations and useful models.
H-index: Google Scholar – 5, Scopus – 2.
http://orcid.org/0000-0001-5348-2734.
Vitalii Velychko,
PhD, assistant professor, Senior researcher.
73 Ukrainian publications,
25 International publications,
H-index: Google Scholar – 7, Scopus – 1.
http://orcid.org/0000-0002-7155-9202.
Affilation:
V.M. Glushkov Institute of cybernetics of
National Academy of Sciences of Ukraine,
40 Glushkov ave., Kyiv,
Ukraine, 03187.
Phone: (+38) (044) 526 3348.
Email: aduisukr@gmail.com
http://orcid.org/0000-0003-3223-9844
http://orcid.org/0000-0002-7155-9202
|