Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

Servlet で RESTful API を開発 - 1.概要・プロジェクト作成

Servlet で RESTful API を作成する方法を書いていきます。今回はアプリの概要と、プロジェクトの作成について書いています。

連載記事

  1. 概要・プロジェクト作成
  2. Javaコード作成
  3. 動作確認

バージョン

ブログ執筆時の製品バージョンは以下の通りです。

機能

メモの「参照・作成・更新・削除」ができるアプリを開発します。

仕様

以下の API を作成します。

機能 HTTPメソッド URI
全件参照 GET /memo
1件参照 GET /memo/:id
作成 POST /memo
更新 PUT /memo/:id
削除 DELETE /memo/:id

レスポンスは JSON で、HTTPステータス 200 を返します。ただし、削除はレスポンスボディなしで 204 を返却します。

作成と更新の際は、リクエストパラメーターからメモの内容を取得します。

プロジェクトの作成

ディレクトリの作成

プロジェクトのフォルダ(例:servlet-rest)を作成して、その下に src/main/java を作成します。

ビルドファイルの作成

プロジェクトのフォルダの下に、以下のファイルを作成します。

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.sample</groupId>
  <artifactId>servlet-rest</artifactId>
  <version>1.0.0</version>
  <packaging>war</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>jakarta.servlet</groupId>
      <artifactId>jakarta.servlet-api</artifactId>
      <version>5.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.14.0</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.3.2</version>
      </plugin>
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>11.0.12</version>
        <configuration>
          <scan>0</scan> <!-- Enable redeployment -->
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

動作確認のために、Maven Jetty プラグインを使うようにしています。

次の記事

2. Javaコード作成