![](bg2.png)
ful for users to make it easier to access data; for ex-
ample, with a web service on the website system, data
changes occur, and the data system in Android ap-
plications can automatically change. With APIs cre-
ated by other users, they cannot directly access the
database, but they have to request it via the internet
and then access the available APIs (Neumann et al.,
2021).
This study uses the Representational State Trans-
fer (REST) architecture as the business logic of the
Show Up application. This REST architecture was
chosen over Simple Object Access Protocol (SOAP)
because REST is a client-server architecture where re-
quests are sent by the client to the server, then pro-
cessed, and the appropriate response is sent back to
the client. REST, showing that REST services are
not limited to XML but can also support JavaScript
Object Notation (JSON), as well as plain text, unlike
SOAP which only supports documents in XML for-
mat (Neumann et al., 2021; Chatterjee, 2020). The
purpose of making the API for the Show Up appli-
cation product is to facilitate integration between ap-
plications such as web, mobile, and desktop, so that
users can be flexible in using the platform when ac-
cessing the Show Up application[9]. The API devel-
opment using JSON as a standard form of data com-
munication and JSON Web Token (JWT) as a sys-
tem user authentication code. The Iterative Incremen-
tal method was chosen in this study because busi-
ness needs are always evolving and API needs are
constantly changing, so this method is suitable be-
cause system development can be done in stages (Pan-
duwiyasa et al., 2021a).
2 LITERATURE REVIEW
2.1 REST (Representational State
Transfer)
REST (Representational State Transfer) is a web-
based architecture using the HTTP (Hypertext Trans-
fer Protocol) protocol as data communication (Li
et al., 2016) . The implementation of REST archi-
tecture on the server can be done independently of
each other (Hu, 2021). In this case, the client imple-
mentation is independently done without interfering
with the server or backend. The REST architecture
has standard request methods, namely GET, POST,
PUT, and DELETE (Hu, 2021). GET is used to re-
trieve data from the server. PUT is used to update
data on the server. POST is used to send data to the
server (J
´
anoky et al., 2018). Then DELETE is used
to delete data on the server. Web services based on
the REST architecture are known as RESTful Web
API services. This web service uses HTTP methods
to implement REST architecture concepts. There are
several principles for designing REST, respectively:
1. Addressability
Each resource requires at least one associated URI
for a REST service. URI is used to specify a re-
source or set of resources.
2. Statelessness
A client-to-server request must contain all the in-
formation necessary to understand the request and
cannot use the context stored on the server.
3. Cacheable
Data marked as cacheable is stored on the sys-
tem and can be reused in the future in response to
the same subsequent request, rather than produc-
ing the same result iteratively. Cache constraints
are used to allow response data to be marked as
cacheable or non-cacheable.
4. Uniform Interface
Applying general software engineering principles
to component interfaces creates a unified inter-
face, simplifies overall system architecture, and
improves dialog visibility.
2.2 JSON Web Token
JSON Web Token is an open standard (RFC 7519)
that defines a way to transmit information as a JSON
object (J
´
anoky et al., 2018). this information can be
verified and trusted because it is digitally assigned
JWT can be signed using hidden (HMAC algorithm)
or public/private key pair using RSA or ECDSA.
Claims can then be encrypted, as JSON Web Encryp-
tion (JWE), or can be digitally signed or protected
using JSON Web Signature (JWS). JWE specified in
RFC7516 (Jones et al., 2015). The JSON format is
specified in RFC8259 (Brier, 2020). JWS consists of
three parts. Headers are used to secure claims, the
payload, or body, describes the claim in JSON format,
and the least is message signature or authentication
code on base64 url to encode header and payload.
2.3 Software Testing
Software testing is the process of running a program
or system involving any activity to find problems,
bugs or other properties that interfere with the ca-
pabilities of the program or system and determine
that the program or system meets the required results
(Garousi et al., 2020). The software testing steps are
divided into three sets, respectively:
ICAISD 2023 - International Conference on Advanced Information Scientific Development
26