diff --git a/src/main/java/com/example/jerseyexercise/resources/Amika.java b/src/main/java/com/example/jerseyexercise/resources/Amika.java new file mode 100644 index 0000000..df493dd --- /dev/null +++ b/src/main/java/com/example/jerseyexercise/resources/Amika.java @@ -0,0 +1,58 @@ +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("/amika") // +@Component //Rest作るときは、@component書く + +public class Amika { + + private HashMap accounts = new HashMap<>(); { //キーとヴァリュー + accounts.put("id", "name"); //キーとヴァリュー + //accountsは全員のIDと名前の対応表(mapはnameはかぶっていい) + } + + + + @GET //idだけ取ってくる集合 + @Produces(MediaType.APPLICATION_JSON) //JSONファイルで返す→@Produdes + public Set getAccounts() { + return accounts.keySet(); //keyをどさっととってこれる + + } + + @POST + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) + //consumeはAPPLICATION_FORM_URLENCODEDだけ + //formdataのこと + public void signup(@FormParam("id") String id, @FormParam("name") String name){ + //idを名前新規作成 + accounts.put(id,name); + + } + + @Path("/{id}")//その子リソースをメソッドが扱う + @Produces(MediaType.TEXT_PLAIN) + public String getName(@PathParam("id") String id){ //@PathParamでid受け取る + return accounts.get(id); + } + + @Path("/{id}")//その子リソースをメソッドが扱う + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) //consumeはこの形式だけ + public void setName(@PathParam("id") String id, @FormParam("name") String name) { + if (accounts.get(id) == null) return; + accounts.put(id, name); + } + +} + +// get: /amika -> 全アカウントのID一覧を返す +// post:(id, name): /amika 新規アカウント登録 +// get: /amika/{id} -> idで指定したアカウントの名前を返す +//put(name): /amika/{id} -> id で指定したアカウントの名前をnameに変更する +