DEV Community

Shubham Bhati
Shubham Bhati

Posted on

Calling OpenAI from Spring Boot: A Production-Ready Integration

Spring Boot Openai Integration

Published 2026-05-18 by Shubham Bhati — Backend Engineer (Java 17, Spring Boot, Microservices).

We've all been there - trying to integrate a third-party API into our Spring Boot application, only to hit a roadblock. Recently, we encountered this issue while trying to integrate OpenAI into our Java backend using Spring Boot. The primary goal was to create a seamless Spring Boot OpenAI integration, enabling our application to tap into the power of AI. After overcoming several hurdles, we successfully implemented the integration, and our application is now capable of utilizing OpenAI's features.

Introduction to OpenAI API

The OpenAI API provides a wide range of features, including text completion, language translation, and text classification. To use the OpenAI API, you need to create an account on their website and obtain an API key. We're using Java 21 and Spring Boot 3.2 for our application, which provides a solid foundation for building a production-ready integration. The OpenAI API uses a RESTful architecture, making it easy to integrate with our Spring Boot application. We can use the Spring Web module to make HTTP requests to the OpenAI API.

// Import necessary dependencies
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

// Create a RestTemplate instance
RestTemplate restTemplate = new RestTemplate();

// Set API key and base URL
@Value("${openai.api.key}")
private String apiKey;

@Value("${openai.base.url}")
private String baseUrl;

// Create a method to make requests to the OpenAI API
public String makeRequest(String prompt) {
    // Set headers and entity
    HttpHeaders headers = new HttpHeaders();
    headers.set("Authorization", "Bearer " + apiKey);
    HttpEntity<String> entity = new HttpEntity<>(headers);

    // Make the request
    ResponseEntity<String> response = restTemplate.exchange(baseUrl + "/completions", HttpMethod.POST, entity, String.class);

    // Return the response
    return response.getBody();
}
Enter fullscreen mode Exit fullscreen mode

Setting up OpenAI with Spring Boot

To set up OpenAI with Spring Boot, you need to add the necessary dependencies to your pom.xml file (if you're using Maven) or your build.gradle file (if you're using Gradle). We're using the Spring Boot Starter Web module, which provides a convenient way to build web applications. You also need to configure the OpenAI API key and base URL in your application properties file.

# application.properties
openai.api.key=YOUR_API_KEY
openai.base.url=https://api.openai.com/v1
Enter fullscreen mode Exit fullscreen mode

Creating a Service to Handle OpenAI Requests

To handle OpenAI requests, we created a service that encapsulates the logic for making requests to the OpenAI API. This service uses the RestTemplate instance to make HTTP requests to the OpenAI API. We're using the Spring Framework's dependency injection feature to inject the RestTemplate instance into our service.

// OpenAI Service
@Service
public class OpenAIService {
    @Autowired
    private RestTemplate restTemplate;

    public String makeRequest(String prompt) {
        // Make the request using the RestTemplate instance
        ResponseEntity<String> response = restTemplate.exchange("https://api.openai.com/v1/completions", HttpMethod.POST, new HttpEntity<>(prompt), String.class);

        // Return the response
        return response.getBody();
    }
}
Enter fullscreen mode Exit fullscreen mode

Error Handling and Logging

Error handling and logging are crucial aspects of building a production-ready integration. We're using the Spring Framework's exception handling feature to handle exceptions that occur during the execution of our application. We're also using the Logback logging framework to log important events in our application.

// Error handling example
try {
    // Make the request
    String response = openAIService.makeRequest(prompt);
} catch (Exception e) {
    // Log the exception
    Logger.getLogger(OpenAIService.class.getName()).log(Level.SEVERE, null, e);
}
Enter fullscreen mode Exit fullscreen mode

Performance Optimization

Performance optimization is critical to ensuring that our application can handle a large volume of requests. We're using the Java 21's built-in support for concurrent programming to optimize the performance of our application. We're also using the Spring Boot's support for caching to cache frequently accessed data.

// Performance optimization example
// Use Java 21's concurrent programming features to optimize performance
ExecutorService executor = Executors.newFixedThreadPool(10);
Future<String> future = executor.submit(() -> openAIService.makeRequest(prompt));
Enter fullscreen mode Exit fullscreen mode

Common Mistakes

Here are some common mistakes to avoid when integrating OpenAI with Spring Boot:

  • Not handling exceptions properly
  • Not logging important events
  • Not optimizing performance
  • Not configuring the OpenAI API key and base URL correctly
  • Not using the correct dependencies in your pom.xml or build.gradle file

FAQ

What is the OpenAI API?

The OpenAI API provides a wide range of features, including text completion, language translation, and text classification. You can use the OpenAI API to build applications that utilize the power of AI.

How do I integrate OpenAI with Spring Boot?

To integrate OpenAI with Spring Boot, you need to add the necessary dependencies to your pom.xml file (if you're using Maven) or your build.gradle file (if you're using Gradle). You also need to configure the OpenAI API key and base URL in your application properties file.

What is the difference between Spring AI and OpenAI?

Spring AI is a framework for building AI-powered applications, while OpenAI is a platform that provides a wide range of AI features, including text completion, language translation, and text classification.

Can I use OpenAI with Java?

Yes, you can use OpenAI with Java. OpenAI provides a RESTful API that can be accessed using Java's built-in support for HTTP requests. You can use the Spring Web module to make HTTP requests to the OpenAI API.

Conclusion

In this article, we've discussed how to integrate OpenAI with Spring Boot. We've covered the basics of the OpenAI API, how to set up OpenAI with Spring Boot, and how to create a service to handle OpenAI requests. We've also discussed error handling and logging, performance optimization, and common mistakes to avoid. To learn more about Spring Boot and OpenAI, you can visit the Spring Boot documentation and the OpenAI documentation.


Spring Boot Openai Integration in production

Further Reading


Written by **Shubham Bhati* — Backend Engineer at AlignBits LLC, specializing in Java 17, Spring Boot, microservices, and AI integration. Connect on LinkedIn, GitHub, or read more at shubh2-0.github.io.*

Top comments (0)