반응형

Java, 간단한 웹 API 서버 예제

 

정리. 수알치 오상문

 

컴파일 및 실행 방법 등은 코드에 있으니 참고하세요.

 

// Java source code
// -*- coding: UTF-8 -*-
/*
파일명: JavaApiServer.java
컴파일: javac -encoding UTF-8 JavaApiServer.java    <-- 인코딩 설정 추가
실행~!: java JavaApiServer
테스트: http://localhost:8000/ping
       http://localhost:8000/
 */
import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpExchange;
import java.io.IOException;
import java.io.OutputStream;

public class JavaApiServer {
    public static void main(String[] args) throws IOException {
        int port = 8000; // 포트 설정

        // HttpServer 생성
        HttpServer server = HttpServer.create(new java.net.InetSocketAddress(port), 0);

        // API 엔드포인트 등록
        server.createContext("/", new HelloHandler());
        server.createContext("/ping", new PingHandler());

        // 서버 시작
        server.start();

        System.out.println("Server is running on port " + port);
    }

    // '\'(루트) API 처리 클래스
    static class HelloHandler implements HttpHandler {
        @Override
        public void handle(HttpExchange exchange) throws IOException {
            String response = "Hello, World!\nJava Simple WEB API Server V1.0"; // 응답 메시지

            // HTTP 응답 설정
            exchange.sendResponseHeaders(200, response.getBytes().length);
            OutputStream os = exchange.getResponseBody();
            os.write(response.getBytes());
            os.close();
        }
    }

    // '\ping' API 처리 클래스
    static class PingHandler implements HttpHandler {
        @Override
        public void handle(HttpExchange exchange) throws IOException {
            String response = "Pong!"; // 응답 메시지

            // HTTP 응답 설정
            exchange.sendResponseHeaders(200, response.getBytes().length);
            OutputStream os = exchange.getResponseBody();
            os.write(response.getBytes());
            os.close();
        }
    }
}

 

반응형

+ Recent posts