[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
UserControll쪽에 최신으로 올려주신 package com.example.restfulwebservice.user ; import org.springframework.data.crossstore.ChangeSetPersister ; import org.springframework.hateoas.CollectionModel ; import org.springframework.hateoas.EntityModel ; import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder ; import org.springframework.http.ResponseEntity ; import org.springframework.web.bind.annotation.* ; import org.springframework.web.servlet.support.ServletUriComponentsBuilder ; import javax.validation. Valid ; import java.net.URI ; import java.util.ArrayList ; import java.util.List ; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder. linkTo ; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder. methodOn ; @RestController public class UserController { private UserDaoService service ; // 생성자를 통한 의존성 주입 public UserController (UserDaoService service) { this . service = service ; } @GetMapping ( "/users" ) public List<User> retrieveAllUsers () { return service .findAll() ; } // 전체 사용자 목록 @GetMapping ( "/users2" ) public ResponseEntity<CollectionModel<EntityModel<User>>> retrieveUserList2 () { List<EntityModel<User>> result = new ArrayList<>() ; List<User> users = service .findAll() ; for (User user : users) { EntityModel entityModel = EntityModel. of (user) ; entityModel.add( linkTo ( methodOn ( this .getClass()).retrieveAllUsers()).withSelfRel()) ; result.add(entityModel) ; } return ResponseEntity. ok (CollectionModel. of (result , linkTo ( methodOn ( this .getClass()).retrieveAllUsers()).withSelfRel())) ; } // 우리는 id 를 숫자로 해도 서버측에 전달 될 경우에는 -> String 으로 된다 //id 로 하면 자동으로 원하는 int 에 맞게 찾아준다 //HETAOS 를 적용하면 개발자의 양은 많아지지만 // 내가 개발한 것을 보는 사용자입장에서는 더 많은 정보를 알 수 있다 // 사용자 상세 정보 @GetMapping ( "/users/{id}" ) public ResponseEntity<EntityModel<User>> retrieveUser ( @PathVariable int id) { User user = service .findOne(id) ; if (user == null ) { throw new UserNotFoundException( "id-" + id) ; } EntityModel entityModel = EntityModel. of (user) ; WebMvcLinkBuilder linkTo = linkTo ( methodOn ( this .getClass()).retrieveAllUsers()) ; entityModel.add(linkTo.withRel( "all-users" )) ; return ResponseEntity. ok (entityModel) ; } //post, put 처럼 데이터 맵핑 할려면 파라미터에 request body 로 형식을 적어줘야한다 @PostMapping ( "/users" ) public ResponseEntity<User> createUser ( @Valid @RequestBody User user) { User saveUser = service .save(user) ; URI localtion = ServletUriComponentsBuilder. fromCurrentRequest () .path( "/{id}" ) .buildAndExpand(saveUser.getID()) .toUri() ; return ResponseEntity. created (localtion).build() ; } @DeleteMapping ( "/users/{id}" ) public void deleteUser ( @PathVariable int id) { User user = service .deleteById( id) ; if (user == null ) { throw new UserNotFoundException(String. format ( "ID[%s] not found " , id)) ; } } } 사용했는데 에러가 발생했습니다 ㅠㅠ org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.plugin.core.PluginRegistry<org.springframework.hateoas.client.LinkDiscoverer, org.springframework.http.MediaType>' available: expected single matching bean but found 3: relProviderPluginRegistry,linkDiscovererRegistry,entityLinksPluginRegistry
[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
지금 현재 swagger 해보고 있는데 org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NoClassDefFoundError: javax/validation/constraints/NotBlank 이런 에러가 발생했습니다 구글링 해보니 이거 버전 안맞다는 말이 많더라구요 버전은 강의를 보면서 하고 있어서 최신 버전을 했는데 다른 문제를 모르겠습니다 ㅠㅠ ㅇㄹㅇㄹㅇㄹ
저번에도 말씀드렸지만 이미지나 동영상 예제 올려주실 수 있나요? 물론 몽고DB 강의에 범주를 넘어가는것은 알겠으나, 아예 없다고는 생각하지 않아서요. 애매하게 중간에 걸친 것 같은데 혹시 예제를 올려주실 수 있나해서요? 아니면 참고할만한 사이트 부탁드립니다. 늘 친절한 답변 주셔서 감사합니다. ps: 앗!!!! 미니 강의 올려주신다 하셨네요. 그럼 강의도 좋은데 실무에서 사용하고 있는 저장 관련 모듈 사이트 알려주시면 감사하겠습니다. ^^ 찾다가 보니 아래와 같은 자료가 있어서 남깁니다. 그런데 제가 궁금한게 Streams 를 많이 사용하나요? Multer는 생각보다 안 사용하는 것 같네요. 생각해보니 mongodb 보단 nodejs범주인것 같긴하네요. 그래도 강사님은 어떤걸 더 추천 하시나요? multer 보니깐 데이터 저장된 파일이 이상한 문자로 나오던데 이 파일을 저장하는건 괜찮은 방법 같습니다만 .... 실무에서 어떤걸 쓰는지 궁금하네요. 제일 궁금한건 Streams인데 범주를 넘어서면 굳이 대답안해주셔됩니다.
안녕하세요. 궁금한 내용이 생겨서 질문 올립니다. Entity 란 DB의 테이블과 매핑되는 객체라고 알고 있는데, update()라는 메서드가 엔티티에 들어가도 괜찮은 건가요? Entity 의 필드 값을 변경시키는 것이므로 Dto 나 다른 곳에서 update 가 되어야 하지 않을까 하는 궁금증입니다.
[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
@app.route("/first/<username>") def get_first(username): return "<h3>Hello"+username+"!</h3>" 여기서 어떻게 @app.route("/first/<username>") 이 <username>은 문자열인데 문자열안을 변수처럼 받아들일수가 있는지 이해가 되지가 않습니다..ㅠㅠ 강의와 관련있는 질문 을 남겨주세요. • 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등) • 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색 을 해주세요. (중복 질문을 자제해주세요.) • 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’ 를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달 에도 요령이 필요합니다. • 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요. • 강의실 페이지 (/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다. • 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재 해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드 를 남겨주세요! 구체적인 질문 일수록 명확한 답을 받을 수 있어요. • 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요. • 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요 . • 정확한 질문 내용과 함께 코드 를 적어주시거나, 캡쳐 이미지 를 첨부하면 더욱 좋습니다. 기본적인 예의 를 지켜주세요. • 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용 은 스팸 처리 등 제재를 가할 수 있습니다.
안녕하세요, AWS Lightsail 사용 중단 하기 위해서는 어떻게 해야하는지 알 수 있을까요?? 강의 내용 모두 그대로 따라해서 AWS Lightsail 이용 하였구요. 강의 수강 후, 아래와 같이 처리하였는데요. 1) Lightsail 내 인스턴스 삭제 2) Lightsail 탄력적 IP 삭제 3) 깃허브에 올렸던 코드 삭제 그런데 계속 일별로 아주 소액이긴 하지만, 비용이 증가 / 청구 되고 있어서 문의드립니다.
좋은 강의 감사드립니다. 한국은 설 연휴가 시작되었는데 새해 복많이 받으세요! 10분40초경 return 해줄 때 ResponseEntity의 body에 event가 아니라 newEvent를 반환해줘야 될 것 같은데 아닌가요..? 현재 코드상 event 는 modelmapper를 활용해서 만든 event객체라 id값이 없고 테스트를 실패할것 같은데 body에 event를 넘겨줘도 테스트에서 return 된 body 에는 id값이 들어가있고 테스트가 통과되는데 제가 놓친부분이 궁금합니다.
spring 에 관련한 질문은 아니지만.. 그냥 계속 궁금증이 맴돌아서 여쭤보겠습니다. 무제한 경매를 가정한 상황에서 basePrice 가 maxPrice 보다 크고 maxPrice가 0인 상황이 어떤 상황인가요..? 이벤트를 최초로 등록하는, (이벤트를 경매에 올리는) 상황을 의미하는 건가요??