Связанное чтение:
Полный сравнительный анализ Facebook/GraphQL, APIJSON (2) — контроль разрешений
С момента выпуска APIJSON пользователи сети постоянно сравнивают его с GraphQL Facebook.
Есть даже много людей, которые утверждают, что APIJSON «полностью взорвал».
Однако верно и обратное, и эта серия блогов продемонстрирует множество реальных доказательств,
APIJSON «закончил» GraphQL!
Слоган APIJSON:
Внутренний интерфейс и автоматизация документов, внешняя (клиентская) настройка возвращаемых данных и структуры JSON!
Введение в APIJSON:APIJSON — это сетевой транспортный протокол JSON для API.
Предоставляет полностью автоматизированный API для простых добавлений, удалений, изменений, сложных запросов и простых транзакционных операций.
Это может значительно снизить затраты на разработку и связь, упростить процесс разработки и сократить цикл разработки.
Он подходит для малых и средних проектов с разделением клиентской и серверной части, особенно для предпринимательских интернет-проектов и проектов для самостоятельного использования предприятиями.
Через API автоматизации интерфейс может настроить любые данные, любую структуру!
Большинству серверных частей HTTP-запросов больше не нужно писать интерфейсы, не говоря уже о документах!
Внешнему интерфейсу больше не нужно сообщать о проблемах интерфейса или документации с серверной частью! Больше никаких ошибок в документации!
Бэкенду больше не нужно писать новую версию интерфейса и документацию для совместимости со старым интерфейсом! Никогда не надоедает интерфейс бесконечно в любое время и в любом месте!
Функции
Онлайн анализ
- Автоматически генерировать документацию, понятную, удобочитаемую и всегда актуальную
- Автоматически генерировать код запроса, поддерживать Android и iOS
- Автоматическое создание файлов JavaBean, загрузка в один клик
- Автоматическое управление и тестирование вариантов использования интерфейса, обмен в один клик
- Автоматическая проверка и форматирование JSON, поддержка выделения и расширения
для передней части
- Нет необходимости отправлять интерфейсы и документы на серверную часть
- Данные и структура полностью настраиваются, что вы хотите
- Смотрите запрос, чтобы узнать результат, что вы просите, то и получаете
- Получите любые данные, любую структуру сразу
- Может удалять дубликаты данных, экономить трафик и повышать скорость
для бэкенда
- Обеспечьте общий интерфейс, большинство API не нужно писать заново
- Автоматически генерировать документацию, не нужно писать и поддерживать
- Автоматическая проверка разрешений, автоматическое управление версиями
- Открытые API не нуждаются в разделении на версии и всегда совместимы.
- Поддержка добавления, удаления, модификации, поиска, нечеткого поиска, регулярного сопоставления, удаленных функций и т. д.
Демонстрация видео:i.youku.com/apijson
[Следующий Gif-файл выглядит застрявшим, но на самом деле приложение на телефоне работает без сбоев]
Домашняя страница проекта:GitHub.com/Томми лимон/…
Полный сравнительный анализ Facebook/GraphQL, APIJSON (1) — основные функции
Сравнение основных функций
APIJSON и GraphQL имеют как одинаковые функции, так и свои специальные функции.
На самом деле это несправедливо, будь то APIJSON или GraphQL в качестве стандарта.
К счастью, большая часть внутренней работы заключается в добавлении, удалении, изменении и проверке базы данных.
Почти все API реализованы на основе функций базы данных,
Затем мы используем функцию базы данных в качестве стандарта, это хороший выбор.
В качестве примера возьмем MySQL, самую популярную базу данных с открытым исходным кодом:
Как показано на рисунке, среди основных функций MySQL:
GraphQL поддерживает только несколько, и все они должны быть реализованы вручную на серверной части;
Но APIJSON поддерживает все это, и все это автоматизировано!
Поля возврата:
GraphQL заставляет внешний интерфейс заполнять все обязательные имена полей в запросе, разделенные символами новой строки.
{ key0 key1 ... }
Например
http://graphql.org/learn/queries/#arguments
{ human(id: "1000") { name height } }
И APIJSON возвращает все поля по умолчанию, необязательный @column для указания необходимых полей.
"@column":"key0,key1,..."
Например
{ "User":{ "id":38710, "@column":"id,name" } }
Только представьте, много раз нам нужно запросить один объект (данные о пользователе, динамические данные о моменте и т. д.), и часто нужно вернуть почти все поля в объекте.
Даже если это список запросов, следует использовать каждую таблицу, такую как комментарий APIJSONServerDemo, без лишних полей!
Обязательная практика GraphQL, несомненно, заставит внешний интерфейс прописывать более 10 полей во многих объектах.
Взяв в качестве примера исходный код JavaScript, простой человек демо-уровня должен написать 6 полей!
https://github.com/graphql/graphql-js/blob/master/src/__tests__/starWarsSchema.js
{ human { id name friends { } appearsIn { } homePlanet secretBackstory } }
Как насчет использования APIJSON? Вот так лаконично:
{ "Human": { } }
код состояния(конкретно APIJSON):
GraphQL не имеет кодов состояния! GraphQL не имеет кодов состояния! GraphQL не имеет кодов состояния! ! !
Это странно и невероятно, но это правда.
Мы часто сталкиваемся с различными ситуациями, такими как тайм-аут входа в систему или вход другого устройства, чтобы заставить текущего пользователя выйти из системы, ошибка пароля во время оплаты, недостаточный баланс и так далее.
Все они требуют уникального идентификатора, отличного от Operation Success (200) и других ошибок, чтобы внешний интерфейс мог выполнять другую обработку на основе этих идентификаторов.
Например, перейти к интерфейсу входа, автоматически переключить банковскую карту для оплаты и т. д.
Но теперь GraphQL не предоставляет коды состояния, и я не вижу никаких других уникальных идентификаторов!
Поэтому, кроме подсказки об ошибке, интерфейсу вообще не нужно думать о других операциях! ! !
APIJSON предоставляет тот же код состояния, что и оригинальный RESTful API, знакомый рецепт и знакомый вкус.
Продолжение следует...
APIJSON, автоматизируйте внутренний интерфейс и документацию, а также настройте данные и структуру JSON, возвращаемые внешним интерфейсом (клиентом)!
Создание не простое, нажмите звездочку в правом верхнем углу, чтобы поддержать его, большое спасибо ^_^