SPRING - User Detail


Udemy-restful Webサービス、Java、Spring Boot、Spring MVC、JPAコースを読み、整理します.

Get User Details Resource Method


応答タイプとして使用するクラスを以前に作成しました.UserRestクラス.なお、現在GET要求が/usersである場合
UserController Class
...
@GetMapping
public String getUser() {
	return "get User is called";
}
このような簡単なStringを返し,ユーザ情報を返すためにUserRestクラスを返す.
UserController Class
...
@GetMapping
public UserRest getUser() {
	return "get User is called";
}
So for us to be able to get details of a specific user, we need to know the ID of that user.
userDetailをリクエストする際のURLは以下の通りです.
GET http://localhost:8080/users/xczvWwef58AGET要求はuser/の後にuserIDを付ける.そして/usersの後ろのidを読むために@GetMappingの後ろにこのように貼り付けます.@GetMapping(path = "/{id}")で、次のように記入します.IDを読み込んで価値を返す作業です.
@GetMapping(path = "/{id}")
public UserRest getUser(@PathVariable String id) {
	UserRest returnValue = new UserRest();
		
	UserDto userDto = userService.getUserByUserId(id);
	BeanUtils.copyProperties(userDto, returnValue);
		
		
	return returnValue;
}

Implement Service layer method


上のuserServiceもありますgetUserByUserId(id);使用していますが、getUserByUserIdメソッドは、UserServiceクラスで実際に作成されていません.Uservice系制作に行こう
package com.appdeveloperblog.app.ws.service;

import org.springframework.security.core.userdetails.UserDetailsService;

import com.appdeveloperblog.app.ws.shared.dto.UserDto;

public interface UserService extends UserDetailsService{
	UserDto createUser(UserDto user);
	UserDto getUser(String email);
	UserDto getUserByUserId(String id);
}
次に、サービスインプラントでgetUserByUserIdメソッドを実装します.
ServiceImpl Class
...
@Override
	public UserDto getUserByUserId(String userId) {
		UserDto returnValue = new UserDto();

		UserEntity userEntity = userRepository.findByUserId(userId);

		if (userEntity == null)
			throw new UsernameNotFoundException(userId);
		BeanUtils.copyProperties(userEntity, returnValue);

		return returnValue;
	}

Update User Repository


次に、UserRepositoryクラスはfindByUserIdメソッドを作成していません.彼にやってあげましょう.
package com.appdeveloperblog.app.ws.io.repositories;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

import com.appdeveloperblog.app.ws.io.entity.UserEntity;

@Repository
public interface UserRepository extends CrudRepository<UserEntity, Long> {
	UserEntity findByEmail(String email);
	UserEntity findByUserId(String userId);
}

Trying to get User Details API Call


まずPostmanログイン前に作成したログインとして、userIdとJason Web Tokenを取得します.

その後、http://localhost:8080/users/userIdは、get要求をこのように送信する.もちろん、認証されたばかりのBeareトークンをヘッダに追加する必要があります.

あなたがよく受け取っているのが見えます.