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("natty")//クラス名MyAccountと全く違うものでも良い@はアノテーションっていうプログラムの目印 @Component//ジャージでする時は絶対につける public class natty { String name = "NoName"; ArrayList<String> tweetList = new ArrayList<>();//AllayListのStringにしますよってするとストリングがたでリストを作れるArrayList<String>はクラスで宣言するだけじゃなく、右辺でインスタンスを作成しないといけない //ArrayListによく使うメソッドは4つある、 // .add(tweet) listの末尾にtweetを追加 // .get(index) listのindex番目の要素を取得 // .size() listにいくつ要素が入っているのか取得 //remove(index) listのindex番目の要素を削除 @GET//下にあるメソッドがGETメソッドっていうことが分かる public String getHelloWorld(){ return "Hello World!!"; } @GET//myaccount/name のget @Path("/name")//myaccountの子リソースができる public String getName(){ return name; } @PUT @Path("name/") public void setName(@FormParam("name") String newName){ name = newName; }//パラーメータがname @POST @Path("/tweets") @Consumes(MediaType.APPLICATION_FORM_URLENCODED)//引数 public void tweet(@FormParam("tweet") String tweet){ tweetList.add(tweet); }//tweetをリストに格納していく @GET @Path("/tweets") @Produces(MediaType.APPLICATION_JSON)//戻り値の受け取り方、文字列以外は返せない、 public ArrayList<String> getTweets(){ return tweetList; } @GET @Path("/tweets/{no}")//noはパスパラメータで{}をつけることでパラメータになる @Produces(MediaType.APPLICATION_JSON) public String getTweet(@PathParam("no") int n){ String t = tweetList.get(n);//tweetwListからn番目のtweetを取ってくる return t; } }