An API Gateway is used to simplify access to each of
the current endpoints. In a microservice design, API
Gateway serves as a single point of entry. The internal
systems created behind the API Gateway can be
isolated because it also functions as middleware. The
API Gateway is set up to handle load balancing,
logging, authentication, rate limitation, caching, and
other tasks. The open source Kong API Gateway is
employed in this study. The following figure depicts
the design of this system's microservice architecture:
Figure 3: Microservice Architecture.
Microservices are the blocks of application and
perform different services, while REST APIs work as
the glue or the bridge that integrates these separate
microservices. The system was developed utilizing
HTTP and REST. Every request results in a response
that is transmitted as JSON. The system is then outfitted
with a security layer to safeguard user data and system-
to-user communication protocols. By employing the
BCrypt hashing algorithm, passwords are safeguarded.
The blowfish encryption algorithm serves as the
foundation for BCrypt. It satisfies three security
requirements that are thought to be enough to safeguard
a system. Additionally, it has a second preimage
resistance, enough salt capacity (in cryptography) to
thwart pre-computational attacks, and flexible costs
(Provos & Mazieres, 1999). When users want to access
the system's endpoints, they employ JSON Web Tokens
(JWT). By comparing the token claims, JWT will make
sure that only specific accounts have access to the data.
The system is then assessed using the white-box
testing methodology. The outcome of the some
system evaluation is displayed in Table 4.
In order to implement system evaluation, a system
failure simulation is used to assess the system's
resilience. Randomly, a number of service nodes are
terminated. Tests are conducted on service nodes that
are still operational. The test's findings demonstrate
that service nodes that do not encounter interference
can operate normally.
Table 4: Result of System Evaluation.
Examination Expectation Reality Result
WADIR create a new user account and fill
in the required information
Creating a new account, encrypting the
password, and storing all of the data in the
database
Creating a new account, encrypting the
password, and storing all of the data in the
database
Success
WADIR creates a new user account and do
not fill in the required information.
The system returns an error message The system returns an error message Success
Users input the correct email and password
combination.
Users log in to the system Users log in to the system Success
Users input incorrect email and password
combination
System returns an error message indicating the
incorrect combination of email and password.
System returns an error message indicating the
incorrect combination of email and password.
Success
Users see their personal information. The
user_ID is sent to the system
The system receives their user_ID and shows
users’ information
The system receives their user_ID and shows
users’ information
Success
WADIR select one user and change the user
information
System changes the selected user information System changes the selected user information Success
WADIR select one user and delete it The selected user is deleted from the database The selected user is deleted from the database Success
Users create a new report and fill in the
required information
Creating a new report, and storing all of the
data in the database
Creating a new report, and storing all of the data
in the database
Success
Users select one report and change the
report information
System changes the selected report
information
System changes the selected report information Success
User select report based on user_id The system receives user_ID and shows the
appropriate report
The system receives user_ID and shows the
appropriate report
Success
User displays the relevant report, select one
report and delete it
The selected report is deleted from the
database
The selected report is deleted from the database Success
KAJUR creates a new department data and
fill in the required information
Creating a new department data, and storing all
of the data in the database
Creating a new department data, and storing all
of the data in the database
Success
KAJUR select one department data and
change the department information
System changes the selected department
information
System changes the selected department
information
Success
KAJUR select one department and delete it The selected department is deleted from the
database
The selected department is deleted from the
database
Success