Полный сравнительный анализ Facebook/GraphQL, APIJSON (1) — основные функции

задняя часть внешний интерфейс GraphQL Facebook

Связанное чтение:

Полный сравнительный анализ Facebook/GraphQL, APIJSON (2) — контроль разрешений

После взрыва Facebook/GraphQL всесторонний сравнительный анализ APIJSON (3) — запрос ассоциации таблиц

 

С момента выпуска 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, возвращаемые внешним интерфейсом (клиентом)!

Создание не простое, нажмите звездочку в правом верхнем углу, чтобы поддержать его, большое спасибо ^_^

GitHub.com/Томми лимон/…