😽
Re:ゼロから始めるSpring Boot実践#1 WebBlog開発#7 アバター画像変更
機能一覧※再掲
- ユーザ
1.1 新規登録
1.2 ログイン
1.3 ユーザ情報取得
1.4 ユーザ情報更新
1.5 アバター画像変更 ← 本記事の内容
1.6 パスワード変更 - 記事カテゴリ
略 - 記事管理
略
API設計
1.5.1 APIの基本情報
- リクエストパス:/user/updateAvatar
- リクエスト方式:PATCH
- インターフェース説明:このインターフェースは、ログイン中のユーザーのアバター(プロフィール画像)を更新するために使用される。
1.5.2 リクエストパラメータ
- リクエストパラメータ形式:queryString
- リクエストデータ例:
avatarUrl=https://aaa.bbb.com/fdsafdsa.png
1.5.3 レスポンスデータ
- レスポンスデータ形式:application/json
- レスポンスパラメータの説明:
{
"code": 0,
"message": "操作成功",
"data": null
}
API開発
1. 開発するメソッド・クラスを考える
1.1 ユーザ情報更新
略
2. Controller作成
UserControllerクラスに以下のメソッドを追加
@PatchMapping("updateAvatar") //エンティティの一部パラメータのみ更新するので、@PatchMappingを使う。
public Result updateAvator(@RequestParam @URL String avatarUrl){//avatarUrlがURL形式になっていることを検証する。
userService.updateAvator(avatarUrl);
return Result.success();
}
4. SeriveとMapperの作成
- UserServiceImplクラスに以下のメソッドを追加
@Override
public void updateAvator(String avatarUrl) {
Map<String, Object> map = ThreadLocalUtil.get(); //ThreadLocalからuseridを取得
Integer id = (Integer) map.get("id");
userMapper.updateAvator(avatarUrl,id);
}
- UserMapperクラスに以下のメソッドを追加
// ユーザアバター画像変更
@Update("update rezerosb_weblog.user set user_pic=#{avatarUrl}, update_time=now() where id=#{id}")
void updateAvator(String avatarUrl, Integer id);
APIテスト
PostmanでAPIを実行してみた。
-
アバター画像変更APIを実行した結果:
成功例:
失敗例:
-
ユーザ情報を取得するAPIを実行した結果:
Discussion