2021년 10월 20일 수요일
2021년 8월 29일 일요일
OpenID connection discovery
2021년 7월 27일 화요일
swagger codegen 사용시 주의 사항
사용환경
- spring boot + swagger
- swagger codegen
- java
뭐 당연 한 거겠지만 swagger 의 doc 에 정의가 잘못 되어 있으면 생성 했을 때 결과에 문제가 있다.
겪은 문제
1. 서버는 basic auth 를 쓰고 있는데 apiclient 에서 basic auth 를 설정 하고자 하면 애를 먹는다.
가능은 하지만 뭔가 정석이 아닌것 같고 이상하다.
이는 apiClient 에서 수정할수 없는 authentication 을 생성하기 때문인데
본론적인 문제는 doc 에 정의를 안해서 그렇다.
securitySchemas 를 설정해라.
2. 서버에서 return 타입을 설정하지 않아 object 형태로 sdk 가 생성 되고 파싱 과정에서 데이터가 없는것처 럼 보인다. 뭐 당연하겠지만 이것도 doc 이 잘못 생성 되서 그렇다.
느낀점.
이런류의 코드들은 많은 사람들이 공들여 만든 코드다. 실수는 내가 한다. 휴먼 에러는 나다. ㅎㅎ
구글 블로그는 버리자. 코드넣기 힘들다
2021년 1월 15일 금요일
@JsonIdentityInfo 사용시 주의점
@JsonManagedReference
@JsonBackReference
과
요즘 방식
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id”)
을 쓰게 된다.
요즘 방식 @JsonIdentityInfo 의 경우 위 예제는
id 로 중복을 방지하여 무한루프를 방지 하는데
한번의 변환에 같은 아이디가 존재 할 경우 JSON 변환을 하지 않는다.
무슨말이냐 하면..
JSON 변환 하는 과정에서 @JsonIdentityInfo 가 달려있는 도메인의 id 가 1개 이상 있으면 안된다는 것이다.
1개 이상 있으면 변환 과정중 1회 이상의 데이터는 변환하지 않는다.
해당 내용은 @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id”)
형태로 사용했을 경우이고
generator 를 변경하면 가능 할 것 같아 보이긴 한다.
그림으로 설명하기 귀찮아서 글로 적긴 했는데
아무튼 참고해라.
-- 추가 --
@JsonIdentityInfo 는 generator 별로 숫자, 문자, uuid 등으로 키를 생성하여
json변환 중 같은 키가 발견되면 같은 스코프 내에서는 표시 하지 않는다.
내 상황같은 경우를 잘 분석 해보니 데이터 루프 중 1depth 까지만 데이터를 표시하고 이하는 표시 하지 않는것을원한 것으로 분석 됐다.
이를 위해 위에서 언급 한 방식을 사용하지 않고
@OneToMany 어노테이션이 달린 List 데이터 필드 위에
@JsonIgnoreProperties 를 사용하여 해당 필드의 List 데이터 내에
@ManyToOne 으로 설정 한 릴레이션에서 Json 편환을 하지 않도록 했다.
@JsonIgnoreProperties("auctionCase")
@OneToMany(mappedBy = "auctionCase", fetch = FetchType.LAZY)
private List<Research> research;