Статьи

Вставка таблицы Mutliple с использованием одного POST – общие примеры кодирования

Это часть серии блогов команды разработчиков приложений Espresso Logic, посвященных общим задачам кодирования и способам их более эффективного выполнения с помощью Espresso Logic. Цель этих блогов состоит из двух частей:

  • Приведите примеры кода того, как система Espresso может использоваться для решения определенных случаев использования.
  • Предоставьте примеры кода, которые вы можете использовать в своих программах при разработке приложений

В этом блоге рассматривается шаблон проектирования, с которым приходится иметь дело всем веб-приложениям и приложениям для мобильных транзакций, — как создать саморегистрацию за несколькими таблицами, используя один метод POST. Это одновременно проблема производительности, сокращения количества обращений к серверу и от него, а также демонстрация того, как усовершенствованный дизайн Espresso Logic обрабатывает сложные транзакции без кодирования. В предыдущем блоге мы рассмотрели правила, используемые для проверки кредитных карт .

Шаблон для самостоятельной регистрации

Самостоятельная регистрация пользователей — это стандартный шаблон проектирования для некоторых веб-приложений и мобильных приложений. Это становится немного сложнее, когда модель базы данных использует несколько таблиц. Используя Espresso Logic, вы можете создать вставку из нескольких таблиц, используя один POST. Внутренний сервер может быть запущен в облаке или локально для подключения к вашей базе данных и быстрого предоставления конечных точек RESTful для каждой из ваших таблиц SQL, представлений и хранимых процедур. Создание составного вложенного документа (называемого ресурсом ) позволит нам разработать API, который объединит связанные таблицы в одну конечную точку REST.

Разработчики могут спроектировать внешний интерфейс Mobile, используя инструменты перетаскивания, которые связывают каждое из текстовых полей с полями вложенных документов JSON. Используя один POST, эти данные отправляются на сервер REST Espresso Logic для обработки деталей.

SelfReg

Настройка учетной записи самостоятельной регистрации

Модель данных

Модель ниже показывает таблицы, которые содержат каждую из соответствующих частей записи саморегистрации. Каждая из этих таблиц имеет первичный ключ с автоматическим приращением и отношение внешнего ключа к таблице Person (например, Password, PersonPhone, Address, EmailAddress) для поддержки кардинальности отношения один-ко-многим. Итак, как мы можем создать один POST для вставки в несколько таблиц и распространения первичного ключа? При подключении к любой базе данных SQL Espresso Logic мгновенно создает определения REST API для каждой таблицы, представления и хранимой процедуры.

ModelSelfReg

Модель данных с несколькими таблицами

Создать новый ресурс

Затем мы используем Espresso Logic Design Studio, чтобы выбрать одну или несколько таблиц из интерфейса «укажи и щелкни» для создания этой новой составной конечной точки документа (см.   Документацию по ресурсам ), которая является комбинацией каждой из дочерних таблиц. «Join» для каждого ребенка будет автоматически завершена , используя существующие связи , определенные в схеме. Неиспользуемые атрибуты для POST могут быть исключены, включая первичный ключ (автоинкремент) и внешний родительский ключ PersonID (они обрабатываются сервером) в каждой дочерней таблице.

MutiTableResource

Настройка нескольких таблиц ресурсов

Образец данных POST JSON

Lab REST в Espresso Logic Design Studio можно использовать для тестирования этого нового ресурса. Мы вводим все значения саморегистрации JSON (показано ниже) и используем команду POST.

RestLab

{
    "Title": "Mr",
    "FirstName": "Test",
    "MiddleName": "M",
    "LastName": "Record5",
    "Phone": [
      {
        "PhoneNumber": "(407) 555-1216",
        "PhoneNumberTypeID": 1
      }
    ],
    "Address": [
      {
       
        "AddressTypeID": 2,
        "AddressLine1": "555 Main St",
        "AddressLine2": "Apt 6",
        "City": "Maitland",
        "StateProvinceID": 15,
        "PostalCode": "32751"
      },
      {
        "AddressTypeID": 1,
        "AddressLine1": "555 Main St",
        "AddressLine2": "6",
        "City": "Maitland",
        "StateProvinceID": 15,
        "PostalCode": "32751"
       
      }
    ],
    "Email": [
      {
        "EmailAddress": "tes6t@gmail.com"
      }
    ],
    "Password": [
      {
        "PasswordHash": " password6",
        "Username": "user"
      }
    ]
  }

Как это работает

REST-сервер Espresso Logic примет этот JSON и выполнит необходимые проверки, деривации и обработку событий (используя Reactive Logic Programming ), а затем сначала вставит Person (возвращает первичный ключ), а затем распространит его среди всех связанных потомков в одна транзакция. Вся логика, проверки и события должны быть успешными, иначе вся транзакция откатывается. Это непростая уловка для любого API REST — поэтому не пытайтесь делать это дома без глубокого понимания SQL, транзакций, модели данных и отношений между родителем и ребенком. Espresso Logic делает это «из коробки» без кода.

 Живой Браузер

Espresso Logic предлагает   Live Browser,  который представляет собой мгновенный HTML5 / угловой просмотр ваших данных с использованием активной схемы. Это позволит нам увидеть отношения «один ко многим» в процессе самостоятельной регистрации. Попробуйте сами и убедитесь в силе Espresso Logic. Посмотреть примеры на GitHub . Примеры вставки таблицы Mutliple Espresso Logic с использованием Single POST являются частью расширенной демонстрации.

LBMultiTable

Резюме

Разработчик для мобильных устройств и веб-разработчиков хочет, чтобы простая и единая конечная точка REST заполняла и обновляла информацию о пользователях. Сервер должен уметь справляться со сложностью и скрывать базовую модель данных. Использование внутреннего сервера Espresso Logic исключает весь код, необходимый для подключения к базе данных, создает вложенную конечную точку документа и распространяет первичный ключ на все связанные дочерние таблицы. Live Browser дает вам мгновенный просмотр, чтобы увидеть и проверить свои результаты — опять же, без кода. Это самый быстрый способ создания и доставки мобильных решений на рынке сегодня.