Как стать автором
Обновить

Комментарии 19

Таблички что-то совсем разъехались.
НЛО прилетело и опубликовало эту надпись здесь
А причем JsonPath? Я про оформление поста…
Посмотрел документацию по JSONPath. Не увидел там возможность поддержки функций типа like и логических операторов.
Для табличек удобно обернуть значения в первой колонке в тег
<nobr>не переносимый длинный текст</nobr>

Спасибо большо! Поправим. Конечно, жаль, что Habr не позволяет просто указать ширину колонок.

А чем odata не устраивает?

НЛО прилетело и опубликовало эту надпись здесь

Так же загибается. Это же ждет и RQL.

Чем ваш вариант лучше http://graphql.org/ ?


С допущением, что у проекта нет уже написанного REST-api?

У меня даже получилось заставить работать вот эту штуку

Месье знает толк ))


А по сути — прикольно: клиент точно будет делать один запрос, а уже адаптер локально кучу. По сети улетит один результат.

Ну у нас просто REST заказчиком навязан, так как есть еще сервисы, которые будут им пользоваться. А под свое приложение хочется чего-то более высокоуровнего и чтобы еще и генерилось само.


Спойлер: graphql все-равно не пропустили, так что пока генерим ts через swagger-codegen.

Наш проект старше чем graphql, а сам по себе RQL еще старше.
Плюс для нас удобно, что RQL запрос это просто строка. Например, в APS приложении структура экранов описывается XML-метафайлом и приложение может указать какие данные нужны для отображения этого View. Тогда в момент показа они уже будут загружены, а если обязательных данных нет, то View будет скрыто из меню и пользователь не сможет на него перейти. В виде строчного query это удобно описать, а в graphql формате, похоже, это будет выглядит весьма громоздко.
GraphQL — это тоже строка.
GraphQL documents are expressed as a sequence of Unicode characters. However, with few exceptions, most of GraphQL is expressed only in the original non‐control ASCII range so as to be as widely compatible with as many existing tools, languages, and serialization formats as possible and avoid display issues in text editors and source control.

в graphql формате, похоже, это будет выглядит весьма громоздко.

Не будет, а вернее, будет так, как вы опишите схему.

Простейший запрос
query1
Понятно что в строку можно записать почти что угодно. Минификатор в том числе этим и занимается. Но, судя по большинству примеров, запросы GraphQL это все-таки структуры и их лучше писать в отформатированном виде.
Речь о том, что в GraphQL нет ничего громоздкого, скорее наборот, это один из самых минималистичных способов записи запроса данных (или представления данных). Мультидревовидная структура с поддержкой функций и директив покрывает большинство сценариев, как показали дальнейшие исследования, не хватает только последовательных запросов (batching), что легко решается.
https://dev-blog.apollodata.com/new-features-in-graphql-batch-defer-stream-live-and-subscribe-7585d0c28b07
Предусматривается ли возможность подписаться на изменения?
Как отреагирует limit(n, m) на добавление/удаление записей до n+m?
RQL это просто запросы к хранилищу. Никакого байндинга не подразумевается.
В APS UI отслеживание можно делать на уровне хранилищ. Повесить observer на хранилище и по его событиям обновлять виджеты, которые отображают данные из него.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий