diff --git a/src/main/java/com/example/jerseyexercise/resources/byakuyaprskRest.java b/src/main/java/com/example/jerseyexercise/resources/byakuyaprskRest.java new file mode 100644 index 0000000..69276dd --- /dev/null +++ b/src/main/java/com/example/jerseyexercise/resources/byakuyaprskRest.java @@ -0,0 +1,50 @@ +package com.example.jerseyexercise.resources; + +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.MediaType; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Set; + +@Path("/byakuyaprsk") +@Component + +public class byakuyaprskRest { + +// get: /byakuyaprsk -> 全アカウントのid一覧を返す +// post(id, name): /byakuyaprsk -> 新規アカウント登録 + +// get: /byakuyaprsk/{id} -> idで指定したアカウントの名前を返す +// put(name): /byakuyaprsk/{id} -> idで指定したアカウントの名前をnameに変更する + + private HashMapaccounts = new HashMap<>(); + + @GET + @Produces(MediaType.APPLICATION_JSON) + 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); + } + +}