#jquery #breeze
#jquery #breeze
Вопрос:
В настоящее время я использую breeze на стороне клиента. Я пишу запрос linq и использую breeze для преобразования его в URL-запрос, который попадет на мой сервер. Мне было интересно, есть ли какой-либо способ узнать на стороне клиента URL, который он генерирует.
Код, который я использую:
var query = breeze.EntityQuery.from("Partners");
manager.executeQuery(query, function (data) {
var results = data.results;
...............................
}
Ответ №1:
Для типа EntityQuery существует недокументированный метод _toUri. В качестве аргумента он принимает MetadataStore.
var query = new EntityQuery()
.from("Customers")
.where("companyName", "startsWith", "C")
.orderBy("companyName");
var queryUrl = query._toUri(myEntityManager.metadataStore);
Обратите внимание, что этот метод НЕ гарантирует продолжения доступности, поэтому использовать его для отладки или изучения синтаксиса OData можно, но не зависеть от него в производстве.
Ответ №2:
Для чего вы хотите использовать URL-адрес? Вы вообще изучали объект запроса? Он содержит имя ресурса, которое является путем, который добавляется к URL вашего API при выполнении запроса и доступен до выполнения запроса —
var resource = query.resourceName;
Если бы вы добавили это к своему entityManager
имени службы, вы могли бы создать URL-адрес, который будет использовать Breeze —
var fullPath = manager.serviceName query.resourceName;
При успешном завершении запроса также возвращаются оба объекта, чтобы вы могли проверить, какой менеджер использовался, его ServiceName, а также resourceName запросов.
Комментарии:
1. Query.resourceName — это только конечная точка; она не включает строку запроса OData, которую генерирует Breeze, и, предположительно, поэтому вы хотели бы увидеть сгенерированный URL.