How carla-s-romero/library-api works
API Biblioteca is an Express REST API for managing authors and books. Clients send CRUD and book-search requests through the HTTP server and resource routes; controllers perform Mongoose operations, and list/search requests pass results to pagination and sorting before returning JSON. The API also connects to MongoDB and maps request, validation, missing-resource, and server errors to HTTP responses. The README documents the product capabilities; edges reflect only its explicit architecture statements or relationships visible in the sampled source, so unsampled implementation details are omitted.
Main entry points: app.js Express app · bookControllers.js Book operations and search · Author.js Author model · index.js Route registry
Components 17
HTTP entry
- HTTP server
server.js - Express app
src/app.js
Resource API
- Route registry
src/router/index.js - Author routes
src/router/authorsRoutes.js - Book routes
src/router/booksRoutes.js - Author operations
src/controllers/AuthorsControllers.js - Book operations and search
src/controllers/bookControllers.js
Data layer
- Database connection
src/config/dbconect.js - Author model
src/models/Author.js - Book model
src/models/Livro.js - Model validation
src/models/globalValidator.js - MongoDB
Request middleware
- Pagination and sorting
src/middlewares/paginationSorting.js - Not-found error
src/middlewares/modelErrors/notFound.js - Error responses
src/middlewares/errorHandler.js - Unknown-route handling
src/middlewares/page404.js
Other components
- API client
Connections 23
- API client → HTTP server: sends requests
README.MD - HTTP server → Express app: loads app
server.js - Express app → Database connection: connects database
src/app.js - Express app → Route registry: registers routes
src/app.js - Route registry → Author routes: mounts routes
src/router/index.js - Route registry → Book routes: mounts routes
src/router/index.js - Author routes → Author operations: dispatches requests
src/router/authorsRoutes.js - Book routes → Book operations and search: dispatches requests
src/router/booksRoutes.js - Author routes → Pagination and sorting: passes list results
src/router/authorsRoutes.js - Book routes → Pagination and sorting: passes list results
src/router/booksRoutes.js - Author operations → Author model: queries and writes
src/controllers/AuthorsControllers.js - Book operations and search → Book model: queries and writes
src/controllers/bookControllers.js - Book operations and search → Author model: searches author
src/controllers/bookControllers.js - Author operations → Not-found error: raises missing error
src/controllers/AuthorsControllers.js - Book operations and search → Not-found error: raises missing error
src/controllers/bookControllers.js - Express app → Unknown-route handling: handles unknown routes
src/app.js - Express app → Error responses: registers error handler
src/app.js - Pagination and sorting → Error responses: forwards invalid input
src/middlewares/paginationSorting.js - Not-found error → Error responses: formats errors
- Author model → MongoDB: persists documents
README.MD - Book model → MongoDB: persists documents
README.MD - Model validation → Author model: validates models
- Model validation → Book model: validates models