Merge pull request #8 from nitta-lab-2024/amika
Amika
commit 68db1cf31cc4a74b819f470f97cb7689d5dc3f04
2 parents 810895f + 431ae22
amika uemura authored on 30 Apr
Showing 1 changed file
View
59
src/main/java/com/example/jerseyexercise/resources/Amika.java 0 → 100644
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<String, String> accounts = new HashMap<>(); { //キーとヴァリュー
accounts.put("id", "name"); //キーとヴァリュー
//accountsは全員のIDと名前の対応表(mapはnameはかぶっていい)
}
 
 
 
@GET //idだけ取ってくる集合
@Produces(MediaType.APPLICATION_JSON) //JSONファイルで返す→@Produdes
public Set<String> 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に変更する