Skip to content

crisbeloneto/library-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 

Repository files navigation

Library Management API

REST API for a library management system.


Languages, Frameworks, Libraries, and Tools used

postgresql java spring maven junit swagger postman

  • Relational Database: PostgreSQL, version 17
  • Language: Java, version 17
    • Framework: Spring Boot, version 3.2.4
    • Dependencies Manager: Maven
    • ORM (Object-Relational Mapping): Hibernate
    • Unit Tests Framework: JUnit 5
  • API Documentation: Swagger

Layered Architecture

      HTTP/REST Client
             ↓↑
Controller (Presentation Layer)
             ↓↑
Service (Business Logic Layer)
             ↓↑
Repository (Data Access Layer)
             ↓↑
Database/PostgreSQL (Data Layer)

Features

  • Data modeling with relationships
  • CRUD operations of entities
  • Validation of input data, and return of clear validation error messages
  • Custom exception handling to clearly communicate failures to the client and return appropriate HTTP status codes (200, 201, 400, 404, 500, etc.)
  • Simple authentication mechanism using a static API Key to secure certain routes
  • API documentation using Swagger
  • Unit Tests with JUnit 5 and Mockito

Steps to run locally on your machine

    1º Clone this repository

    git clone https://github.com/crisbeloneto/library-api.git

    Or manually download it via the button 'Download ZIP'

    2º ...


URLs to access the API documentation:
Locally 👉 http://localhost:8080/swagger-ui.html
Online 👉 https://librarymgmtapi.onrender.com/swagger-ui.html

About

REST API for a library management system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors