코들린 마이크로서비스 개발 예제 프로젝트
https://github.com/PacktPublishing/Hands-On-Microservices-with-Kotlin
코들린 마이크로서비스 개발 예제 프로젝트
License: MIT License
코들린 마이크로서비스 개발 예제 프로젝트
https://github.com/PacktPublishing/Hands-On-Microservices-with-Kotlin
@RequestBody를 통해 JSON 객체를 ObjectMapper가 역직렬화로 객체를 생성한다.
예제 코드
경로 변수 얻기
classs SimpleObject
POST /customer에 새 리소스를 게시
CustomerHandler
CustomerRouter
웹플럭스를 사용하는 새 프로젝트 생성
CustomHandler 클래스 정의
Mono 사용을 위한 ReactiveMongoTemplate 사용
포트 8888로 변경 후 실행 확인
@EnableConfigServer 애노테이션으로 컨피그 서버 변경
/config 위치 설정
애플리케이션 기본 설정 파일 추가 후 /application/default에서 확인
GET /greetings 생성
컨피그 서버에서 설정값 가져오기
PUT /customer/id 처리
Customer
CustomerController 생성
ResponseEntity 사용
ComplexObject
복잡한 객체 역시 ObejctMappter가 JSON에서 자바 객체로 역직렬화하도록 클래스를 탐색한다.
ControllerAdvice와 ExceptionHandler 애노테이션 사용
오류 응답 처리 데이터 클래스 정의 ErrorResponse
findCustomer 메소드 추가
searchCustomer 서비스 구현
search 핸들러 구현
/customers 라우터 매핑
정적 index.html 파일 생성
companion object 추가, saveAll 메소드 사용
요청 매개 변수 두 번째 단계
getCustomers()에 @RequestParam 추가
경로와 요청 매개 변수, customers 맵 생성 부분
Customer 클래스 추가
요청 매개 변수 예제
getCustomer 서비스 메소드 구현
findById 메서드 추가
Customer 클래스 안에 Telephone 클래스 정의
ResponseEntity 사용
GET 요청에 응답
POST 요청에 응답
DELETE 요청에 응답
UPDATE 요청에 응답
빈(null) 응답
컨트롤러에서 비즈니스 예외 로직 처리
createCustomer 메소드 추가
create handler 추가
route, create handler에 매핑
암호화 키 설정
다른 프로파일 설정 사용
onErrorResume 추가
spring initializr를 통해 프로젝트 생성
Dependencies에 Config Client와 Reative Web 추가
** 책에는 없는 application.properties 값 추가 등
모노를 사용해 단일 Custoemr의 게시자를 반환
RestController 생성 예제
Customer class 생성 Document annotation 추가
CustomerRepository 생성
CustomerRepository 사용, save 메소드 추가
RouterFunction을 가지는 CustomRouter 클래스 정의
CustomerService
CustomerServiceImpl
생성
DELETE /customer/id 처리
DatabaseInitializer class 추가
ReactiveMongoOperations 객체 사용
interface CustomerService
class CustomerServiceImpl
플럭스를 통해 Customer 목록을 게시자에게 반환하도록 서비스 수정
모노 사용
JSON 객체를 보내면 설정할 수 있는 속성만 처리한다.
즉 JSON 객체에 추가 데이터가 있어도 무시된다.
요청에 실제로 필요한 값을 누락하고 보내도 객체는 역직렬화 된다.
CustomerNotFoundException 정의 후 예외 처리
CustomerExistException 추가
deleteById 메소드 추가
deleteCustomer 인터페이스 서비스 구현
delete handler 메소드 추가
delete router에 delete handler 매핑
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.