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

// get: /monaka -> 全アカウントのid一覧を返す
// post(id, name): /monaka -> 新規アカウント登録

// get: /monaka/{id} -> idで指定したアカウントの名前を返す
// put(name): /monaka/{id} -> idで指定したアカウントの名前をnameに変更する

@Path("/fish")
@Component
public class FishRest {
    private HashMap<String, String> accounts = new HashMap<>();

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    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);
    }
}