2017-05-08 2 views
0

현재 JSON/BSON을 사용하여 계층 적 객체 (복잡한 거래)를 제공하는 웹 API 끝점에 액세스합니다. 개체는 표준 정규화 된 데이터로 저장된 엔터티 프레임 워크 개체에서 SQL Server 데이터베이스로 변환됩니다. 이 모든 것이 잘 작동합니다.웹 API에 객체 필터 보내기

그러나 이러한 개체의 수가 증가하면 클라이언트에서 필요한 것을 필터링하기 전에 유선을 통해 serialize/deserialise하는 것이 점점 더 비효율적이됩니다. 모든 객체 또는 객체 별 메소드를 사용하는 것은 괜찮지 만, 완전히 캡처하려면 무수히 많은 다른 메소드 서명이 필요한 필터링을위한 더 복잡한 기준이 있습니다. 이상적인 세계에서는 Func<Deal,bool>을 거래 종료 점에 보낼 수 있으며 이는 클라이언트 측에서 서버 측에서 제정 될 필터링 메커니즘을 제공합니다. 전제는 다양한 사용자가 다양한 측면에 기반한 거래에 관심을 갖게된다는 것입니다.

이것은 미칠 수 있지만,이 선을 따라 무언가를 얻을 수있는 방법이 있습니까?

답변

0

"SearchCriteria"개체를 검색 끝점에 전달하고 다양한 조건 속성에 설정된 값을 기반으로 서버에서 필터링을 수행하면됩니다. 그러나 우리는 상당히 잘 정의 된 기준 목록을 가지고 있으며 필터링을 수행하는 것은 그렇게 나쁘지 않습니다.

또는 OData를 사용하지 않았지만 이것이 내가 알고있는 것으로부터 당신이 찾고있는 것일 수도 있습니다. 내가 이것을 다시 숙고한다면 이것을 조사 할 것입니다.

https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint