Какая информация предоставляется в результате проверки loopback
Перейти к содержимому

Какая информация предоставляется в результате проверки loopback

  • автор:

Пример приложения LoopBack

Если вы не прошли Начало работы с LoopBack, то сейчас самое время это сделать.

Для более глубокого понимания LoopBack и того, как он работает, прочитайте Определение модели и Соединение модели с базой данных. руководство пошаговый опишет создание простого LoopBack приложения.

На GitHub вы найдете репозиторий loopback-getting-started с готовым приложением, создание которого будет описываться в данном руководстве. Вы можите скачать его себе и пройти шаг за шагом, которые мы для вас заблаговременно подготовили в виде тегов tags.

Вы можите выполнить все пошагово для того, чтоб создать приложение и понять смысл некоторых вещей в LoopBack , или просто перейти к тому шагу, который вас интересует:

  • Создание простого API
  • Использование API Explorer
  • Подключение вашего API к хранилищам данных
  • Расширьте свой API
  • Добавление статической веб-страницы
  • Добавить пользовательски маршрут Express
  • Узнать больше�мках Loopback:
  • iOS SDK (Objective C) для iPhone и iPad приложений. См. iOS SDK для получения более подробно информации.
  • Android SDK (Java) для Android приложений. См. Android SDK для получения более подробно информации.
  • AngularJS (JavaScript) для HTML5 front-ends. См. AngularJS JavaScript SDK для получения более подробно информации.

Какие коннекторы данных есть в LoopBack?

LoopBack provides numerous connectors to access enterprise and other backend data systems.

LoopBack предоставляет многочисленные коннекторы для доступа крупных проектов и других backend систем данных.

Коннекторы баз данных:

  • Memory connector
  • MongoDB connector
  • MySQL connector
  • Oracle connector
  • PostgreSQL connector
  • Redis connector
  • SQL Server connector
  • ATG connector
  • Email connector
  • Push connector
  • Remote connector
  • REST connector
  • SOAP connector
  • Storage connector

Кроме того, есть общественные соединители, созданные разработчиками в LoopBack сообществе с открытым исходным кодом.

Почему curl запрос к моему LoopBack приложению терпит неудачу?

If the URL loads fine in a browser, but when you make a curl request to your app you get the error:

Если URL загружается в браузере хорошо, но когда вы делаете curl запрос к вашему приложению вы получаете сообщение об ошибке:

curl: (7) Failed to connect to localhost port 3000: Connection refused

Причиной скорей всего будет несовместимость IP версии между вашим приложением и curl .

На Mac OS 10.10 (Yosemite), curl использует IP v6 по умолчанию.

LoopBack, по умолчанию использует IP v4, а curl может использовать IP v6. Если вы увидите IP v6 запись в вашем фале хоста (::1 localhost, fe80::1%lo0 localhost), вполне вероятно, что curl делает запрос используя IP v6. Для того, чтоб сделать запрос используя IP v4, укажите свой —ipv4 параметр в вашем curl запросе, как показано ниже.

$ curl http://localhost:3000 —ipv4

Вы можите сделать, чтоб ваше LoopBack приложение использовало IP v6, указав адрес IP v6, как показано ниже:

app.start = function()  // start the web server return app.listen(3000, '::1', function()  app.emit('started'); console.log('Web server listening at: %s', app.get('url')); >); >; 

Более конкретные вопросы

После того, как вы начнете работать с LoopBack, у вас могут появится более конкретные вопросы. Наиболее распространенные из них мы собрали тут с короткими вопросами и ссылками на документацию для получения полного ответа.

Как вы выполняете GET запрос на удаленный сервер?

Во-первых, вы должны настроить источник данных, используя REST коннектор. В datasources.json файле, который конфигурирует источник данных, вы можите задать операцию обратную REST API, используя свойства операций.

Может приложение возвращать XML вместо JSON?

Да: в server/config.json установить свойство remoting.rest.xml как true . См. config.json для получения более детальной информации.

Как послать email из приложения?

  1. Настроить источник данных для использования email коннекта.
  2. Спроектируйте Email модель в источник данных email.
  3. Отправить email используя модель настроенную с помощью Email.send() .

How do you use static middleware?

Static middleware enables an application to serve static content such as HTML, CSS, images, and client JavaScript files. To add it:

  1. Remove the contents of the default «routes» property in middleware.json .
  2. Add the following to the «files» property in middleware.json : to serve static content from the project’s /client directory.

"loopback#static":  "params": "$. /client" > 

See Defining middleware for more information, and loopback-faq-middleware for a short example.

What kind of hooks do models support?

Model hooks are functions that are executed when certain events occur in a model’s lifecycle. LoopBack models many different hooks, for example: afterInitialize after a model is initialized, beforeValidate / afterValidate (before and after model validation), beforeSave / afterSave (before and after a model is saved), and so on.

See Model hooks for a complete list and more information. See loopback-faq-model-hooks for a brief example.

Вопросы управления пользователями

See Управление пользователями for more information and loopback-faq-user-management for relevant code examples.

См. Управление юзерами для получения более подробной информации и примеры кода loopback-faq-user-management

  • Вы должны натсроить LoopBack для отправки email для email-связывания.
  • Если вы используете Gmail, просто замените данные пользователя и пароль на свои учетные данные.
Как зарегистрировать нового пользователя?
  1. Создайте форму регистрации.
  2. Создайте remote hook для отправки email с подтверждением.
  • При выполнении, user.verify посылает электронную почту с помощью предложенных опций.
  • Верификация email настроена для redirect the user to the /verified route для общего случая. Для вашего приложения вы должны настроить перенаправление конкретно для своего случая.
  • Опции self-explanitory не считая type , template and user.
    • type — значением должен быть email .
    • template -путь к шаблону для проверки email.
    • user — когда это предусмотрено, информация в объекте будет использована в проверочной ссылке email.
    Как вы отсылаете проверочный email новому юзеру?

    См. шаг 2 в предыдущем вопросе.

    Реализация возможности логина пользователя?
    1. Создайте форму входа.
    2. Создайте маршрута обработки запроса входа.
    Реализация возможности разлогировнаия пользователя?
    1. Создайте ссылку разлогировнаия с access token внедренного в URL.
    2. Вызовите User.logout с access token.
    • Мы используем loopback token middleware для обработки access tokens. До тех пор, пока вы не представите access_token в строке запроса URL, access token объекта будет представлен в req.accessToken свойстве в вашем обработчике маршрута.
    Как реализовать сброс пароля для зарегистрированного пользователя
    1. Создайте форму сброса пароля.
    2. Создайте endpoint для обработки информации сброса пароля. Вызов User.resetPassword выдает resetPasswordRequest событие, и создает временный access token.
    3. Зарегистрируйте обработчик события resetPasswordRequest который отправит email зарегистрированному пользователю. В нашем примере, мы приводим URL, который перенаправляет пользователя на страницу сброса пароля с проверкой подлинности с временным access token.
    4. Создайте форму сброса пароля, где пользователь введет и подтвердит новый пароль.
    5. Создайте endpoint процесса сброса пароля.

    Примечание: Для обработчика обратного вызова resetPasswordRequest, вам предоставляется с объектом информация, которая содержит данные, относящиеся к пользователю, который запрашивает сброс пароля.

    Основные понятия LoopBack

    Модели являются основой LoopBack, и представляют собой серверные источники данных, такие как базы данных или других back end сервисов (REST, SOAP, и так далее). Модели LoopBack являются JavaScript объектами, которые объединяют Node и REST APIs.

    **Ключевая значительная особенность LoopBack заключается в том, что когда вы определяете модель, она автоматически сопоставляется с предопределенным REST API с полным набором CRUD операций: создание, чтение, обновление, и удаление.**

    Базовая модель объекта имеет методы для добавления привязки и для валидации данных. Другая модель объектов — все “наследовать от” него. Модели имеют иерархию наследования, как показано на рисунке справа: при подключении модели к постоянному источнику данных она становится подключенной моделью с CRUD операциями; Встроенные модели наследуются от базовых моделей LoopBack .

    Встроенные модели

    Каждый LoopBack приложение имеет набор предопределенных встроенных моделей, таких как пользователь, роль и приложение, поэтому вам не придется создавать эти общие модели с нуля.

    Пользовательские модели

    Вы можете определить свои собственные модели специфичные для вашего приложения. You can make your custom models extend built-in models to build on the predefined functionality of User, Application, and other built-in models.

    Модель отношений

    Модели CRUD операций

    При подключении модели к постоянному источнику данных, например к базе данных, он становится подключенной моделью с полным набором CRUD операций — создание, чтение, обновление и удаление, из класса PersistedModel:

    Операция REST LoopBack метод модели
    (Node API)* Соответствующая SQL
    операция
    Создание
    [create()](http://apidocs.strongloop.com/loopback/#persistedmodel-create)* INSERT
    Чтение (извлечение) GET /modelName?filter=… [find()](http://apidocs.strongloop.com/loopback/#persistedmodel-find)* SELECT
    Обновление (модификация)
    [updateAll()](http://apidocs.strongloop.com/loopback/#persistedmodel-updateall)* UPDATE
    Удаление (разрушение) DELETE /modelName/modelID [destroyAll()](http://apidocs.strongloop.com/loopback/#persistedmodel-destroyall)* DELETE
    • Перечисленные методы являются лишь наглядными примерами; другие методы могут предоставить аналогичную функциональность; Например, в дополнение к find() , есть также findById (), findOne (), и findOrCreate ()

    Логика приложения

    Вы можете добавить пользовательскую логику приложения несколькими способами. Вы можете:

    • Добавить логику приложения для моделей с помощью дистанционных методов (пользовательские REST endpoints),дистанционных привязок, которые срабатывают по remote методам, иmodel hooksкоторая срабатывает по модели CRUD методов.
    • Добавить загрузочные скрипты, которые будут запускаться при запуске приложения.
    • Define custom middleware, similar to Express middleware.

    You can add code to Validate data before saving it to the model and back-end data store.

    Фаза промежуточных функций

    Промежуточные функции относится к функциям, которые выполняются, когда HTTP запрос делается на REST endpoints. Поскольку LoopBack основан на Express, LoopBack промежуточные функции такие же как Express промежуточные функции. Тем не менее, в LoopBack добавляется понятие фазы, чтобы четко определить порядок в котором вызываться эти функции. Использование фаз, помогает избежать вопросов упорядочения, которые могут возникнуть со стандартными Express промежуточными функциями.

    См. Определение промежуточных функций для получение подробной информации.

    Источники данных и коннекторы

LoopBack обобщает backend сервисы такие как базы данных, REST APIs, SOAP веб сервисы и сервисы хранения данных, как источники данных.

Источники данных обращаются к коннекторам, которые в свою очередь взаимодействуют с базами данных или другими back-end сервисами. Приложения не используют коннекторы напрямую, а взаимодействуют с источниками данных используя DataSource и PersistedModel APIs.

LoopBack компоненты

LoopBack компоненты обеспечивают дополнительную “plug-in” функциональность:

  • Push уведомления — обеспечивают передачу информации на мобильные приложения для мгновенного их отображения в виде ”значка,” оповещения, или всплывающего сообщения на мобильном устройстве.
  • Сервис хранения — позволяет загружать и скачивать файлы с помощью облачных систем хранения данных (Amazon, Rackspace, OpenStack и Azure), а так же файловой системы сервера.
  • Login от сторонних производителей — интегрирует Passport и позволяет пользователям входить (и связывать аккаунты) используя учетные данные сторонних производителей: Facebook, Google, Twitter, Github, или любой системы которая поддерживает OAuth, OAuth 2, или OpenID.
  • Синхронизация — позволяет обильному приложению работать в автономном режиме и затем синхронизировать все данные с сервером, когда оно снова присоединится к сети.
  • OAuth 2.0 — позволяет Loopback приложениям действовать как OAuth 2.0 провайдеры, для аутентификации и авторизации клиентских приложений и пользователей, через защищенные API endpoints.

Средства разработки

LoopBack предоставляет два основных инструмента разработки приложений:

  • [slc loopback](https://docs.strongloop.com/pages/viewpage.action?pageId=5310655) — инструмент командной строки для создания и изменения Loopback приложений.
  • StrongLoop Arc — графический инструмент для разработки, развертывания и мониторинга Loopback приложений.

Инструмент командной строки slc loopback проведет вас через весь процесс разработки приложений с помощью интерактивных подсказок:

  1. Начните с генератора приложений для создания и генерации базовой структуры приложения: slc loopback .
  2. Добавьте модели (и свойства модели) используя генератор моделей: slc loopback:model . Если вам нужно добавить свойства к существующим моделям, используйте генератор свойств, slc loopback:property .
  3. Добавьте источники данных используя генератор источников данных, slc loopback:datasource .
  4. Добавьте связи между моделями с помощью генератора связей, slc loopback:relation .

Loopback Interface Overview

The Internet Protocol (IP) specifies a loopback network with the (IPv4) address 127.0.0.0/8 . Most IP implementations support a loopback interface ( lo0 ) to represent the loopback facility. Any traffic that a computer program sends on the loopback network is addressed to the same computer. The most commonly used IP address on the loopback network is 127.0.0.1 for IPv4 and ::1 for IPv6. The standard domain name for the address is localhost .

A network device also includes an internal loopback interface ( lo0.16384 ). The internal loopback interface is a particular instance of the loopback interface with the logical unit number 16384.

You use the loopback interface to identify the device. While you can use any interface address to determine if the device is online, the loopback address is the preferred method. Whereas interfaces might be removed or addresses changed based on network topology changes, the loopback address never changes.

When you ping an individual interface address, the results do not always indicate the health of the device. For example, a subnet mismatch in the configuration of two endpoints on a point-to-point link makes the link appear to be inoperable. Pinging the interface to determine whether the device is online provides a misleading result. An interface might be unavailable because of a problem unrelated to the device configuration or operation. You can use the loopback interface to address these issues.

Junos OS Evolved supports two different filters to control the flow of local packets: one for network control traffic (loopback traffic) and one for management traffic. For additional information, see Top Differences Between Junos OS Evolved and Junos OS.

  • As the loopback address never changes, it is the best way to identify a device in the network.
  • The loopback interface is always up and reachable as long as the route to that IP address is available in the IP routing table. Hence, you can use the loopback interface for diagnostics and troubleshooting purposes.
  • Protocols such as OSPF use the loopback address to determine protocol-specific properties for the device or network. Further, some commands such as ping mpls require a loopback address to function correctly.
  • Junos OS creates a separate loopback interface for the internal routing instance, which prevents any filter on lo0.0 from disrupting internal traffic.

Linux Network Administrator’s Guide, Second Edition by

Get full access to Linux Network Administrator’s Guide, Second Edition and 60K+ other titles, with a free 10-day trial of O’Reilly.

There are also live events, courses curated by job role, and more.

Interface Configuration for IP

After setting up your hardware as explained in Chapter 4, you have to make these devices known to the kernel networking software. A couple of commands are used to configure the network interfaces and initialize the routing table. These tasks are usually performed from the network initialization script each time you boot the system. The basic tools for this process are called ifconfig (where “if” stands for interface) and route .

ifconfig is used to make an interface accessible to the kernel networking layer. This involves the assignment of an IP address and other parameters, and activation of the interface, also known as “bringing up” the interface. Being active here means that the kernel will send and receive IP datagrams through the interface. The simplest way to invoke it is with:

ifconfig interface ip-address

This command assigns ip-address to interface and activates it. All other parameters are set to default values. For instance, the default network mask is derived from the network class of the IP address, such as 255.255.0.0 for a class B address. ifconfig is described in detail in the section Section 5.8.”

route allows you to add or remove routes from the kernel routing table. It can be invoked as:

route [add|del] [-net|-host] target [if]

The add and del arguments determine whether to add or delete the route to target . The -net and -host arguments tell the route command whether the target is a network or a host (a host is assumed if you .

Get Linux Network Administrator’s Guide, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *