Newer
Older
JerseyExercise / src / main / java / com / example / jerseyexercise / resources / natty.java
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;
    }
}