package com.example.jerseyexercise.resources; import jakarta.annotation.PostConstruct; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Set; /* ,-、 ..-、 ./:::::\ /:::::ヽ /::::::::;ゝ--──-- 、._/:::::::::ヽ /,.-‐''"′ \::::::::| / ヽ、::| / ● ヽ| l 、、、 ● l .| (_人__丿 、、、 | Hello. l l ` 、 / `ー 、__ ./ /`'''ー‐‐──‐‐‐┬--- / */ // get: /neko -> 全アカウントのid一覧 // post(id, name): /neko -> 新規アカウント登録 // get: /neko/{id} -> idで指定したアカウントの名前 // put(name): /neko/{id} -> idで指定したアカウントの名前をnameに変更する @Path("/neko") @Component public class NekoCanFlyRest { private HashMap<String, String> accounts = new HashMap<>(); @GET @Produces(MediaType.APPLICATION_JSON)//戻り値の形式(Json or Text) public Set<String> getAccounts() { return accounts.keySet(); } @POST @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public void signup(@FormParam("id") String id, @FormParam("name") String name){ accounts.put(id, name); } @Path("/{id}") @GET @Produces(MediaType.TEXT_PLAIN) public String getName(@PathParam("id") String id){ return accounts.get(id); } @Path("/{id}") @PUT @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public void setName(@PathParam("id") String id, @FormParam("name") String name){ if(accounts.get(id) == null) return; accounts.put(id, name); } }