마이크로 서비스 환경에서 새로운 서비스를 개발 중입니다. REST 서비스입니다. 간단히하기 위해 경로는 다음과 같습니다. / historyBooks
그리고이 경로에 대한 POST 방법은 새로운 역사 책을 만듭니다.
역사 책은 역사의 하나 이상의 시대를 다루고 있다고 가정하자.
간결성을 위해 다음과 같은 인류 역사 시대 만 가정 해 봅시다.
- 고대
- 포스트 클래식
- 현대
내 코드에서는으로 표현하고 싶습니다 enum
.
메소드 본문 (페이로드)은 JSON 형식이며 필드 이름을 포함해야합니다 eras
. 이 필드는 era
이 책에서 다루는 값 목록입니다 .
몸은 다음과 같이 보일 수 있습니다.
{
"name": "From the cave to Einstein - a brief history review",
"author": "Foo Bar",
"eras": ["Ancient", "Post Classical", "Modern"]
}
이 특정 서비스에서 비즈니스 논리는
다음과 같습니다. 입력에 시대가 없다면이 책은 모든 시대 를 다루는 것으로 간주됩니다 .
API 검토에서 제안은 다음과 같습니다. 시대 열거에 대해
다른 값을 포함 ALL
하여 모든 시대가 포함되어 있음을 명시 적으로 나타냅니다.
나는 그것이 몇 가지 장단점이 있다고 생각합니다.
장점 :
명시 적 입력
단점 :
목록에 두 가지 항목이 제공되면 다음 ALL
과 같이 말하십시오 Ancient
-신청서에서 무엇을 가져 옵니까? 나는 그 추측 ALL
다른 값을 오버라이드 (override) 할 필요가 있지만, 새로운 비즈니스 로직입니다.
특정 시대를 다루는 책에 대해 쿼리를 실행하면 모든 시대를 다루는 책을 어떻게 표현할 수 있습니까? 경우 ALL
도 (같은 논리를 사용하여) 출력에 사용되는, 그것은 해석하는 소비자의 책임 ALL
으로가 ["Ancient", "Post Classical", "Modern"]
.
내 질문
나는 새로운 것을 갖는 ALL
것이 전혀없는 것보다 더 혼란을 야기 한다고 생각 합니다.
어떻게 생각해? 이 ALL
값 을 추가 하거나 값없이 API를 유지 하시겠습니까 ?