diff --git a/src/main/java/com/example/jerseyexercise/resources/NekoCanFlyRest.java b/src/main/java/com/example/jerseyexercise/resources/NekoCanFlyRest.java new file mode 100644 index 0000000..c4c61c5 --- /dev/null +++ b/src/main/java/com/example/jerseyexercise/resources/NekoCanFlyRest.java @@ -0,0 +1,62 @@ +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 accounts = new HashMap<>(); + + @GET + @Produces(MediaType.APPLICATION_JSON)//戻り値の形式(Json or Text) + public Set 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); + } +}