{"id":15211264,"url":"https://github.com/dhanushgr/springboot-loadsapi","last_synced_at":"2026-03-09T02:31:22.001Z","repository":{"id":249448134,"uuid":"822652646","full_name":"dhanushgr/SpringBoot-LoadsAPI","owner":"dhanushgr","description":"Java Spring Boot (backend framework) project which demonstrates REST API methods with PostgreSQL. Exception handling with custom error message.","archived":false,"fork":false,"pushed_at":"2024-08-23T19:31:08.000Z","size":98,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T04:23:46.899Z","etag":null,"topics":["java","jpa","postgresql","spring","spring-boot","spring-mvc"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhanushgr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-01T14:49:33.000Z","updated_at":"2024-08-27T09:30:03.000Z","dependencies_parsed_at":"2024-08-23T20:51:04.949Z","dependency_job_id":"a2a9910b-57f6-4d45-80c1-6faa8570b86d","html_url":"https://github.com/dhanushgr/SpringBoot-LoadsAPI","commit_stats":null,"previous_names":["dhanushgr/springproject-loadsapi","dhanushgr/springboot-loadsapi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhanushgr%2FSpringBoot-LoadsAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhanushgr%2FSpringBoot-LoadsAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhanushgr%2FSpringBoot-LoadsAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhanushgr%2FSpringBoot-LoadsAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhanushgr","download_url":"https://codeload.github.com/dhanushgr/SpringBoot-LoadsAPI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238874339,"owners_count":19545165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","jpa","postgresql","spring","spring-boot","spring-mvc"],"created_at":"2024-09-28T08:21:43.672Z","updated_at":"2025-10-29T18:31:42.766Z","avatar_url":"https://github.com/dhanushgr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Spring Boot REST API with PostgreSQL\r\n\r\nThis project demonstrates various REST API methods (GET, PUT, POST, DELETE) using Java's Spring Boot framework and PostgreSQL database.\r\n\r\nTech stack: Java Spring Boot 3, PostgreSQL database, JPA (Java Persistence API)\\\r\nTools used: Postman, PgAdmin Postgresql database console, IDE (Intellij or VSCode or Eclipse)\r\n\r\nPlease refer to the [Steps to run](#steps-to-run) section for instruction on how to clone and run this application. \r\n\r\n### REST API Method Table\r\n```\r\n| Number | API Name              | HTTP Method | Path                        | Status Code    | Additional details                    |\r\n|--------|-----------------------|-------------|-----------------------------|----------------|---------------------------------------|\r\n| 1      | GET load              | GET         | /load                       | 200 OK         | All load details are retrieved        |\r\n| 2      | POST load             | POST        | /load                       | 201 Created    | A new load is created                 |\r\n| 3      | GET load by Id        | GET         | /load/{id}                  | 200 OK         | Specific load is fetched by Id        |\r\n| 4      | GET load by shipperId | GET         | /load/shipperId/{shipperID} | 200 OK         | Specific load is fetched by shipperId |\r\n| 5      | PUT load              | PUT         | /load/{id}                  | 200 OK         | Specific load is updated              |\r\n| 6      | DELETE load           | DELETE      | /load/{id}                  | 204 No Content | Specific load is deleted              |\r\n```\r\n\r\n### Spring Boot Architecture\r\n| ![springBootArchitectureDiagram](https://github.com/user-attachments/assets/ee451bff-6e9d-40df-ae01-620069500072) |\r\n|:--:| \r\n| *Architecture of Spring Boot Framework* |\r\n\r\n\r\n### Version details:\r\nThe versions can be found in the file `pom.xml`. You can update the versions in pom.xml [here](https://github.com/dhanushgr/SpringBoot-LoadsAPI/blob/main/pom.xml).\r\n\r\n* Java version: 21\r\n* Spring boot version: 3.3.2\r\n* JPA version: 3.2.5\r\n* Postgresql version: 42.7.3\r\n\r\n### Steps to run\r\n\r\n1. Clone this git repository to your local computer\r\n```commandline\r\ngit clone git@github.com:dhanushgr/SpringBoot-LoadsAPI.git\r\n```\r\n2. PostgreSQL Database setup:\r\n* Make sure that you have \"PostgreSQL pgadmin\" and \"Postman\" installed in your system. You can search in Google for the installation steps. \r\n* Open Pgadmin (PostgreSQL console) and create a new database called `LoadAPI` in your Pgadmin console. You can search in Google for \"How to create database in postgresql pgadmin\"\r\n* Default port of PostgreSQL is `5432`. If there is a port conflict (port already in use), then you need to update the postgresql port in `spring.datasource.url` present in the file `src/main/resources/application.properties`:\r\n  https://github.com/dhanushgr/SpringBoot-LoadsAPI/blob/main/src/main/resources/application.properties#L4\r\n3. Run the project using Maven OR your IDE:\r\n* Using Maven: Install [Apache Maven](https://maven.apache.org/download.cgi), setup maven in the `PATH` variable and verify the command `mvn -version`. Finally, run the project:\r\n```\r\ncd SpringBoot-LoadsAPI/\r\n./mvnw spring-boot:run\r\n``` \r\n* Using IDE: Open the project `SpringBoot-LoadsAPI` using your IDE (Intellij or VSCode or Eclipse etc.) and navigate to `src/main/java/com/dhanush/springproject/SpringprojectApplication.java`. Right click on `SpringprojectApplication.java` and click on `Run`\r\n4. Open Postman and then try out various REST API methods (GET, PUT, POST, DELETE). Alternatively, you can use `curl` command instead of Postman.\r\n5. You can verify the data present by running `SELECT` SQL queries in PostgreSQL pgadmin console.\r\n\r\n### Example screenshots\r\n\r\nGET request for empty database :\r\n![Screenshot (106)](https://github.com/user-attachments/assets/1667df03-3b32-4cba-9682-54245f6a410c)\r\nEmpty database :\r\n![Screenshot (105)](https://github.com/user-attachments/assets/f52abeab-9d67-4eb7-9800-533db485b67e)\r\nPOST request to add load detail(with comment) :\r\n![Screenshot (107)](https://github.com/user-attachments/assets/4e4ab291-c4bf-47f8-a2e4-1b557ff90907)\r\nposted detail in database :\r\n![Screenshot (108)](https://github.com/user-attachments/assets/3b49139f-9ff0-48d6-af4f-4d749522b029)\r\nPOST request to add load detail(without comment) :\r\n![Screenshot (109)](https://github.com/user-attachments/assets/c1c4df7a-cfa2-4bef-9f4b-ee0742dbf8d2)\r\nposted detail in database :\r\n![Screenshot (110)](https://github.com/user-attachments/assets/b9eb61e4-e0fe-4967-abbb-1bcc19aa644d)\r\nposted two more data in database :\r\n![Screenshot (111)](https://github.com/user-attachments/assets/f8c323fd-fcb1-4081-aae5-7bfae9af922f)\r\nGET /load : shows all the details\r\n![Screenshot (112)](https://github.com/user-attachments/assets/b341bd7e-0987-403b-b72c-0e56b4b9090d)\r\nGET /load/{id} :\r\n![Screenshot (113)](https://github.com/user-attachments/assets/0acaf466-a579-47ff-ba1c-6849a5f0d715)\r\nGET /load/shipperId/{shipperId} :\r\n![Screenshot (114)](https://github.com/user-attachments/assets/b8f56995-5a6c-4c03-bcfe-87e99aedb4bd)\r\nPUT /load/{id} :\r\n![Screenshot (115)](https://github.com/user-attachments/assets/73ce9225-b5fb-4719-b5a5-9fbed7d41182)\r\nPUT /load/{id} updated in database :\r\n![Screenshot (116)](https://github.com/user-attachments/assets/91b5a052-456e-4028-89e6-42dda078762d)\r\nException handling for PUT request:\r\n![Screenshot (117)](https://github.com/user-attachments/assets/94c980a5-54f6-45f1-8006-bb00e214f98f)\r\nException handling for GET request(/load/{id}): NOT_FOUND\r\n![Screenshot (118)](https://github.com/user-attachments/assets/82927566-91c8-48ae-ae8a-6a74ac64d66b)\r\nException handling for GET request(/load/shipperId/{shipperId}): INTERNAL_SERVER_ERROR\r\n![Screenshot (119)](https://github.com/user-attachments/assets/9ad6a29e-be7b-43ab-81a3-527c4be0483a)\r\nDELETE request /load/{id}:\r\n![Screenshot (121)](https://github.com/user-attachments/assets/34fb8b05-789f-48b7-a142-7ec5193e9985)\r\ndeleted the specific load detail for given id:\r\n![Screenshot (122)](https://github.com/user-attachments/assets/78e61815-c149-494b-94de-44ac6e8c23a8)\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhanushgr%2Fspringboot-loadsapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhanushgr%2Fspringboot-loadsapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhanushgr%2Fspringboot-loadsapi/lists"}