Work

Java Spring API

Java
Spring Boot
PostgreSQL

A work-in-progress RESTful API built with Java and Spring Boot. Designed to manage news articles, comments, and users, with pagination, validation, and relational logic.

Terminal and browser windows showing a Java Spring Boot API with JSON responses

My first backend project in Java. A learning exercise in Spring Boot and building production-ready APIs.

This API project is currently in development as part of my self-led exploration of Java and the Spring Boot ecosystem, based on the Codecademy Java & Spring Boot track. After building the NC News API in JavaScript, I wanted to deepen my understanding by tackling a similar project in a completely different tech stack. This version aims to serve as a structured, RESTful backend for managing news content, including articles, users, and comments.

Though the project is still in progress, it already demonstrates core concepts like MVC architecture, JPA-based database relationships, and clean controller logic. My focus has been on writing scalable code, ensuring clear API responses, and learning best practices around Java backend development.


Key Goals

  • RESTful API covering full CRUD operations
  • Clean separation of concerns (Controller → Service → Repository)
  • Comprehensive error handling with clear status codes
  • Secure access and role-based user permissions (planned for a later phase)

What I’m Learning

This project has been a hands-on way to:

  • Explore how Spring Boot automates backend architecture
  • Work with Java annotations, dependency injection, and database bindings
  • Design APIs from scratch with RESTful conventions
  • Compare backend development in Java vs. JavaScript
  • Plan for extensibility, including auth and frontend integration

Tech Stack

  • Java 17, Spring Boot 3
  • PostgreSQL with JPA and Hibernate
  • Gradle project structure with environment-based configs
  • Swagger for documentation (planned)
  • Local testing with Postman and JUnit

I’ll continue to update this entry as I build out more features and refine the codebase. 🚀