OData 페이로드를 유선으로 보내는 가장 효율적인 방법은 무엇입니까?“밀집된 JSON?”

StackOverflow https://stackoverflow.com//questions/9636486

문제

저는 다양한 REST 서비스로 구성될 분산 애플리케이션을 설계하고 있습니다.최근에 저는 ASP.NET MVC 4 웹 API를 사용하여 REST 서비스를 구현할지 아니면 OData를 사용할지 고민하고 있습니다.Web API는 언젠가 나에게 필요한 기능이 될 것 같지만 지금은 절반만 구운 상태입니다.특히 OData 스타일 URI 쿼리가 부분적으로 구현되어 있으며 기본적으로 하이퍼미디어를 수행하지 않습니다.

그래서 저는 OData를 다시 한 번 자세히 살펴보게 되었습니다.저는 지연 로딩을 위한 URI 쿼리 기능과 구조적 하이퍼미디어를 정말 좋아합니다.나는 내 응용 프로그램에서 이러한 기능을 많이 사용할 것이라고 생각합니다.그러나 Atom Pub 사양은 매우 비효율적인 것으로 보입니다.

나는 최근에 한 권을 읽었습니다. OData의 효율적인 형식에 대한 게시물 "밀집된 JSON"을 언급했지만 실제로는 그런 것이 존재하지 않는 것 같습니다.이것이 사실입니까?그리고 밀집된 JSON 같은 것이 없더라도 일반 JSON은 여전히 ​​Atom Pub보다 훨씬 더 효율적입니다. 맞나요?

JSON 대신 Atom Pub을 사용하고 싶은 상황이 있나요?

도움이 되었습니까?

해결책

OData를 사용하면 의미론적 수준에서 ATOM과 JSON 간에 차이가 거의 없습니다.또한 대부분의 OData 서버(확실히 WCF 데이터 서비스)는 두 가지를 모두 지원하므로 어느 것을 사용할지는 클라이언트의 선택입니다.Pablo의 블로그 게시물에서 언급했듯이 최상의 페이로드 크기를 얻으려면 HTTP 압축을 활성화해야 합니다.ATOM과 JSON 모두에서 훌륭하게 작동합니다.

JSON을 읽는 것이 더 빠른 경향이 있지만(XML 구문 분석은 비용이 많이 듭니다) 클라이언트의 CPU 소비가 염려되는 경우에 해당됩니다.제 기억이 맞다면 지난번에 숫자를 봤을 때 ATOM과 JSON의 압축된 페이로드 크기는 크게 다르지 않았습니다.

ATOM PUB는 일반적으로 JSON이 아닌 좋은 XML 또는 ATOM 라이브러리를 사용할 수 있는 클라이언트에서 사용하기가 더 쉽습니다.그 반대.하지만 그 외에는 큰 차이가 없어야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top