diff --git a/src/main/java/com/example/jerseyexercise/resources/SRana.java b/src/main/java/com/example/jerseyexercise/resources/SRana.java new file mode 100644 index 0000000..0375833 --- /dev/null +++ b/src/main/java/com/example/jerseyexercise/resources/SRana.java @@ -0,0 +1,65 @@ +package com.example.jerseyexercise.resources; + +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.MediaType; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; + +@Path("srana") +@Component//Jerseyの場合必須 + +public class SRana { + String name = "noname"; + + ArrayList tweetList = new ArrayList<>(); + // ↑の<>中にJerseyはいっているが省略できる + + //Jerseyの場合getメソッドと定義する必要がある + @GET//myaccountのGET + public String getMyAccount() { + return "Hello World!!";//localhost:8080/myaccount(URL)のwebページにHello World!!が表示される + } + @GET//myaccount/nameのGET + @Path("/name")//親リソースの続きの子リソース + public String getName() { + return name; + } + + //置き換え、入れ替えをするときPUTを使う + @PUT + @Path("/name")//←URLのname   ↓パラメータのname(Keyのnameと一致) + public void setName(@FormParam("name") String newName) { //nameをPostmanでPUTすることで変更できる。引数はnewName。 + name = newName;//nonameが上書きされる + ArrayList tweetList = new ArrayList<>(); + } + + @POST + @Path("/tweets") + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) + public void tweet(@FormParam("tweet")String tweet) { + //tweets = tweet ←これだと最新のツイートしか見れない(過去のが残らない) + tweetList.add(tweet); + //ArrayList のメソッド: + // add(x) --- リストの末尾にxを追加 + // get(idx) --- リストのidx番目の要素を取得 + // size() --- リストに入っている要素の数を取得 + // remove(idx) --- リストのidx番目の要素を削除 + } + + @GET + @Path("/tweets") + @Produces(MediaType.APPLICATION_JSON) + public ArrayList getTweets() { + return tweetList;//このtweetListはArrayList + } + + @GET + @Path("/tweets/{no}") + @Produces(MediaType.APPLICATION_JSON) + public String getTweet(@PathParam("no") int n) { + String t = tweetList.get(n); + return t; + } + +}