Newer
Older
JerseyExercise / src / main / java / com / example / jerseyexercise / resources / NekoCanFlyRest.java
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);
    }
}