Quantcast
Channel: プログラム の個人的なメモ
Viewing all articles
Browse latest Browse all 860

【Spark Framework】Spark Framework [4] ~ + GSONを使って REST API を作成する ~

$
0
0

前提条件

http://blogs.yahoo.co.jp/dk521123/36426276.html
のように設定されていること

■ 環境設定

 * 以下の「build.gradle」を参考に、GSONを追加し、
   Eclipseの対象プロジェクトを右クリックし、[Gradle (STS)]-[Refresh Dependencies]を選択

build.gradle

dependencies {
    compile 'com.sparkjava:spark-core:2.6.0'
    compile 'org.slf4j:slf4j-simple:1.7.25'
    compile 'com.google.code.gson:gson:2.8.2' # GSON の追加
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

■ サンプル

Person.java

public class Person {
  private long id;
  private String name;

  public Person(long id, String name) {
    this.id = id;
    this.name = name;
  }

  public long getId() {
    return id;
  }
  public void setId(long id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
}

HelloWorld.java

import static spark.Spark.get;

import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;

import spark.Request;
import spark.Response;

public class HelloWorld {

  public static void main(String[] args) {
    Gson gson = new Gson();
    get("/", HelloWorld::getPeople, gson::toJson);
  }

  private static List<Person> getPeople(Request request, Response response) {
    List<Person> people = new ArrayList<>();
    people.add(new Person(1L, "Mike"));
    people.add(new Person(2L, "Tom"));
    people.add(new Person(3L, "Kevin"));
    return people;
  }
}

出力結果

ブラウザを立ち上げて、以下のURLにアクセスする
[[http://localhost:4567]]
[{"id":1,"name":"Mike"},{"id":2,"name":"Tom"},{"id":3,"name":"Kevin"}]

関連記事

Spark Framework [1] ~ 入門編 / 環境構築(Gradle Project)からHello Worldまで ~

http://blogs.yahoo.co.jp/dk521123/36426276.html

【Java】JSON ~JSONライブラリ:GSONを用いた場合~

https://blogs.yahoo.co.jp/dk521123/32813165.html

Viewing all articles
Browse latest Browse all 860

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>