JSON Req/Res

Creating REST APIs in Java using servlets is a common approach for building web services. I'll provide you with an example of creating a simple REST API using a Java servlet that accepts JSON input and returns a JSON response. In this example, we will use the org.json library for handling JSON.

  1. First, ensure you have the org.json library in your classpath, as mentioned in a previous response.

  2. Create a Java servlet that handles JSON input and produces a JSON response. Here's a basic example:

import org.json.JSONObject;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;

public class JsonApiServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // Read the JSON input from the request
        BufferedReader reader = request.getReader();
        StringBuilder jsonInput = new StringBuilder();
        String line;

        while ((line = reader.readLine()) != null) {
            jsonInput.append(line);
        }

        // Parse the JSON input using the org.json library
        JSONObject requestBody = new JSONObject(jsonInput.toString());

        // Process the JSON data
        String name = requestBody.getString("name");
        int age = requestBody.getInt("age");

        // Create a JSON response
        JSONObject jsonResponse = new JSONObject();
        jsonResponse.put("message", "Received JSON data");
        jsonResponse.put("name", name);
        jsonResponse.put("age", age);

        // Set the response content type to JSON
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");

        // Send the JSON response
        try (PrintWriter out = response.getWriter()) {
            out.print(jsonResponse.toString());
        }
    }
}

In this example, we have created a servlet that listens to the POST requests at the URL /api/example. It reads the JSON input from the request and processes it using the org.json library. Then, it constructs a JSON response and sends it back to the client.

  1. Deploy your servlet in a servlet container like Apache Tomcat.

  2. To test the REST API, you can use tools like curl, Postman, or a web application that can make HTTP POST requests with a JSON payload. Here's an example using curl:

curl -X POST http://localhost:8080/your-web-app-name/api/example -H "Content-Type: application/json" -d '{"name":"John","age":30}'

This curl command sends a POST request with a JSON payload to your servlet, and you should receive a JSON response in return.

Please make sure to adapt the code and URL paths to your specific project and deployment setup. This example is for demonstration purposes, and in a production application, you may want to include error handling and additional validation.

Last updated