SPRING - User Detail
Udemy-restful Webサービス、Java、Spring Boot、Spring MVC、JPAコースを読み、整理します.
応答タイプとして使用するクラスを以前に作成しました.UserRestクラス.なお、現在GET要求が
userDetailをリクエストする際のURLは以下の通りです.
GET
上のuserServiceもありますgetUserByUserId(id);使用していますが、getUserByUserIdメソッドは、UserServiceクラスで実際に作成されていません.Uservice系制作に行こう
次に、UserRepositoryクラスはfindByUserIdメソッドを作成していません.彼にやってあげましょう.
まずPostmanログイン前に作成したログインとして、userIdとJason Web Tokenを取得します.
その後、
あなたがよく受け取っているのが見えます.
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/xczvWwef58A
GET要求は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トークンをヘッダに追加する必要があります.あなたがよく受け取っているのが見えます.
Reference
この問題について(SPRING - User Detail), 我々は、より多くの情報をここで見つけました https://velog.io/@dlawogus/SPRING-User-Detailテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol