ハマログ

株式会社イーツー・インフォの社員ブログ

JAX-RSでREST形式のサービスを作成するの巻

こんにちは、かねこです。

はじめに

REST(Representational State Transfer)なAPIっていいですね。ということで、JavaEE7でJSR339 The Java API for RESTful Web Servicesが標準サポートされましたので、使ってみます。

環境
・NetBeans7.4
・JavaEE7
・DB なし
・Maven3.0.5(NetBeansに統合)
・Mac OS X Version10.9(Windowsでも手順まったく同じです)

Quick Start

NetBeansにJavaEE環境を構築します。手順はこちら

環境ができたら、File -> New File -> Others -> RESTful Web Service from Patterns

Screen Shot 2013-11-20 at 11.52.20

パターンを選択。とりあえずコンテナとアイテムを選択

Screen Shot 2013-11-20 at 11.52.27

リソースとかMIMEタイプとか選択。JSONがかっこいいけど、めんどくさいからテキスト。

Screen Shot 2013-11-20 at 11.53.00

クラス完成。ここまで全自動!

Screen Shot 2013-11-20 at 11.54.01

ここまでで、GlassFish起動するとアクセスできるはず。URL調べるには、まずApplicationConfigみてアプリケーションのパスを確認

package jp.co.e2info;

import java.util.Set;
import javax.ws.rs.core.Application;

@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends Application {

    @Override
    public Set<Class<?>> getClasses() {
    //(略)

webresourcesになってた。
続いて、Resourceクラスを確認

package jp.co.e2info;

import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.POST;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

/**
 * REST Web Service
 */
@Path("/Items")
public class ItemsResource {

    @Context
    private UriInfo context;
    //(略)

/Itemsで、こう。 → http://localhost:8080/jax-rs/webresources/Items

でた。

Screen Shot 2013-11-22 at 12.33.15

例外なげてるとこ、編集。

package jp.co.e2info;

import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.POST;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

@Path("/Items")
public class ItemsResource {
    // (略)
    @GET
    @Produces("text/plain")
    public String getText() {
        return "Hello :-)";
    }
    // (略)

とりゃ!

Screen Shot 2013-11-22 at 12.36.15

完成〜。POJOでの記述最高!
気が向いた時に続きます。

かねこでした。

JavaJavaEEJAX-RSJCPJSONJSRRESTtext/htmlXML

  kaneko tomo   2013年11月22日


関連記事

Laravelのマイグレーション(Migrations)

こんにちは、かねこです。 はじめに Laravelでのデータベースマイグレーショ…

LINE Messaging APIのテスト(はじめに)

LINE Messaging APIを試してみました。 https://busi…

Nagiosでpingの応答が返ってこないサーバを監視する

Nagiosで死活監視をしているサイトのうち、サービスステータスが正常なのにホス…


← 前の投稿

次の投稿 →