2016-01-29 3 views
1

Я работаю над выпуском Jaydata 1.3.6 (с OData V3), и у меня есть проблема с сервисными операциями и действиями, все они представлены с помощью метода GET вместо POST ...Jaydata ServiceOperation и метод действия POST игнорируется

Мне нужно изменить GET на POST из-за моего запроса фильтра $, который является большим для запроса GET (длина строки ограничения).

Я пробовал много возможностей, как:

$data.EntityContext.extend('Default.Container', { 
    'Items': { type: $data.EntitySet, elementType: Entities.Item, method: 'POST' }, 
    'GetItemsAction': { type: $data.ServiceAction, returnType: $data.Queryable, elementType: 'Entities.Item', 'EntitySet': 'Item', params: [] }, 
    'GetItemsOperation': { type: $data.ServiceOperation, returnType: $data.Queryable, elementType: 'Entities.Item', 'EntitySet': 'Item', params: [], method: 'POST' } 
}); 

Действие Сервис предназначен, чтобы действие метода на POST по умолчанию, но это всегда в ГЭТ, даже если я вручную установить метод для ServiceOperation параметр метода игнорируется ...

Я установил OData контроллер .Net с моими методами в POST:

[EnableQuery] 
public IQueryable<Item> Get(ODataQueryOptions<Item> options) 
{ 
    return this._itemRepository.GetAll(); 
} 

[HttpPost] 
[EnableQuery] 
public IQueryable<Item> GetItemsAction(ODataQueryOptions<Item> options) 
{ 
    return this._itemRepository.GetAll(); 
} 

[HttpPost] 
[EnableQuery] 
public IQueryable<Item> GetItemsOperation(ODataQueryOptions<Item> options) 
{ 
    return this._itemRepository.GetAll(); 
} 

есть ли проблема с implementati о Джайдате?

Спасибо за ваши советы!

ответ

0

Я нашел решение, чтобы Service Action и Service Operation передать методом POST:

Когда я увидел это: http://jaydata.org/blog/odata-cookbook-with-jaydata#h3_2

Я видел, что создание динамического контекста игнорировать метод POST, когда он разобрать дальномер $ метаданных в первый раз ...

Первое, что нужно сделать, это статике инициализировать контекст, как это:

var context = new NortwindContext({ 
    name: 'oData', 
    oDataServiceHost: 'http://localhost:50538/examples/Northwind.svc' 
}); 

context.onReady(function() { 
    // work with your data 
}); 

Но Jaydata не POST $ filter и другие $ top соглашения запросов, это всегда в GET querystring.

Как решить проблему GET Максимальная длина в Jaydata с OData v3? Я еще не знаю ... Если кто-нибудь может мне помочь ...

Смежные вопросы