Giter Site home page Giter Site logo

phantomcase / book-manager-api Goto Github PK

View Code? Open in Web Editor NEW

This project forked from techreturners/book-manager-api

0.0 1.0 0.0 91 KB

Book Manager Web API using Spring Boot for Further APIs Session

License: GNU General Public License v3.0

Java 100.00%

book-manager-api's Introduction

๐Ÿ“– Minimalist Book Manager API

Introduction

This is the starter repository for the Further APIs session. It provides a start to creating a Minimalist Book Manager API using a Test-Driven Development approach.

Pre-Requisites

  • Java SE Development Kit 11
  • Maven

Technologies & Dependencies

  • Spring Boot
  • Spring Web
  • H2 Database
  • Lombok
  • Spring Data JPA

How to Get Started

  • Fork this repo to your Github and then clone the forked version of this repo

Main Entry Point

Running the Unit Tests

  • You can run the unit tests in IntelliJ, or you can go to your terminal and inside the root of this directory, run:

mvn test

Tasks

Here are some tasks for you to work on:

๐Ÿ“˜ Task 1: Implement the following User Story with tests.

User Story: As a user, I want to use the Book Manager API to delete a book using its ID

๐Ÿ“˜ Extension Task: Oh no! ๐Ÿ˜ญ We've only covered the happy paths in the solution, can you figure out a way to add in exception handling to the project?

  • Clue 1: What if someone wants to add a book with an ID for a book that already exists? How do we handle this gracefully?

  • Clue 2: What if someone wants to find a book by an ID that doesn't yet exist? How can we improve the API by handling errors gracefully and show a helpful message to the client?

////////////////////////////////////////////////

USAGE

This is Minimalist Book Manager API Follow is the endpoint to use for specific function

Get All Books

Request

GET /api/v1/book/

Response

Status: 200 OK

[ { "id": 1, "title": "Book title 1", "description": "Book Description 1", "author": "Author 1", "genre": "Romance" }, { "id": 2, "title": "Book title 2", "description": "Book Description 2", "author": "Author 2", "genre": "Romance" }, { "id": 3, "title": "Book title 3", "description": "Book Description 3", "author": "Author 3", "genre": "Romance" } ]

Get a Book by ID

Request

GET /api/v1/book/:id

Response

Status: 200 OK

{ "id": 1, "title": "Book title 1", "description": "Book Description 1", "author": "Author 1", "genre": "Romance" }

Add a Book

Request

POST /api/v1/book/

book:{ "title": "Book title 1", "description": "Book Description 1", "author": "Author 1", "genre": "Romance" }

Response

Status: 201 OK

{ "id": 1, "title": "Book title 1", "description": "Book Description 1", "author": "Author 1", "genre": "Romance" }

Update a Book

Request

PUT /api/v1/book/:id

Response

Status: 200 OK

{ "id": 1, "title": "Book title 001", "description": "Book Description 001", "author": "Author 001", "genre": "Romance" }

Delete a Book

Request

DELETE /api/v1/book/:id

Response

Status: 200 OK

book-manager-api's People

Contributors

eggsy84 avatar kimdiep avatar phantomcase avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.