To create a REST API using Spring Boot and publish an article about it on Medium, here are the general steps to follow:
1. Initialize a Spring Boot Project
Step 1: Use Spring Initializr
Go to Spring Initializr.
Configure your project:
Project: Maven Project
Language: Java
Spring Boot: 3.3.x or a more recent stable version
Project Metadata: Fill in the group, artifact, and other necessary information
Dependencies: Add Spring Web, Spring Data JPA, and H2 Database (for an in-memory database)
Click “Generate” to download the project.
Step 2: Unzip and Import the Project
Unzip the downloaded ZIP file.
Import the project into your preferred IDE (Eclipse, IntelliJ IDEA, etc.).
2. Configure the Project
Step 3: Configure the H2 Database
In the application.properties file, add the following configurations for H2:
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
Step 4: Create the JPA Entity
Create an Article class representing an article:
package com.example.demo.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private String content;
// Getters and Setters
}
Step 5: Create the JPA Repository
Create an ArticleRepository interface:
package com.example.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.model.Article;
public interface ArticleRepository extends JpaRepository<Article, Long> {
}
3. Create Services and Controllers
Step 6: Create the Service
Create an ArticleService class:
package com.example.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.repository.ArticleRepository;
import com.example.demo.model.Article;
import java.util.List;
@Service
public class ArticleService {
@Autowired
private ArticleRepository articleRepository;
public List<Article> getAllArticles() {
return articleRepository.findAll();
}
public Article getArticleById(Long id) {
return articleRepository.findById(id).orElse(null);
}
public Article saveArticle(Article article) {
return articleRepository.save(article);
}
public void deleteArticle(Long id) {
articleRepository.deleteById(id);
}
}
Step 7: Create the Controller
Create an ArticleController class:
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.example.demo.service.ArticleService;
import com.example.demo.model.Article;
import java.util.List;
@RestController
@RequestMapping("/api/articles")
public class ArticleController {
@Autowired
private ArticleService articleService;
@GetMapping
public List<Article> getAllArticles() {
return articleService.getAllArticles();
}
@GetMapping("/{id}")
public Article getArticleById(@PathVariable Long id) {
return articleService.getArticleById(id);
}
@PostMapping
public Article createArticle(@RequestBody Article article) {
return articleService.saveArticle(article);
}
@DeleteMapping("/{id}")
public void deleteArticle(@PathVariable Long id) {
articleService.deleteArticle(id);
}
}
**
4. Test the Application
**
Step 8: Run the Application
Run the main class of the project (annotated with @SpringBootApplication).
Access the H2 console via http://localhost:8080/h2-console and use the configured connection details to verify the data.
Step 9: Test the Endpoints
Use tools like Postman to test the endpoints:
- GET /api/articles: Retrieves all articles
- GET /api/articles/{id}: Retrieves an article by ID
- POST /api/articles: Creates a new article
- DELETE /api/articles/{id}: Deletes an article by ID
Top comments (0)