Simple guide to help you on your web-dev journey
View the Project on GitHub KeaCluster/bookstoreAPI-spring-guide
We’ll look at some basic theory and concepts there. Remember that this isn’t a professional guide, so don’t take it as the absolute truth. Always look and search for more information and question the basics.
An API (Application Programming Interface) is a set of rules and procedures that enable different applications to communicate and interact with each other. The basic example is the connection between a web-application that the final user interacts with, and a database with stored data.
REST (Representational State Transfer) is and architectural style for designing networked aplications. It uses HTTP requests to perform CRUD operations.
A RESTful API
adheres to REST principles, enabling scalable, flexible, and indepndent interfacing between two systems for secure and efficient data exchange.
Design Patterns are general reusable solutions to common problems encountered in software design. They aren’t considered blueprints or templates, but rather guidelines for how to structure code to solve certain problems. They apply and encapsulate best practices to promote maintainability, scalability, and robustness in complex software projects.
MVC (Model-View-Controller) is a design pattern that segregates an application into three interconnected components to separate internal representations of information from the way it’s presented and accepted by the end user.
This separation into Model
, View
and Controller
components facilitates organized coding, easier maintenance, and effective data management and representation.
The term Persistence refers to the capability of a system to store data in a permanent state that can be retrieved and used even after the system has been rebooted. This is helpful when unintended and/or intended off-on situations happen.
The Java Persistence API (JPA) provides a framework for mapping Java Objects
directly to database tables and vice versa. Allowing for data persistence management.
This dependency greatly simplifies data access within Java applications providing an Object-Relational-Mapping (ORM) framework. Abstracting and handling database operations, making code database-agnostic and easier to maintain.