Download the PHP package ioncurly/vetmanager-api-gateway without Composer

On this page you can find all versions of the php package ioncurly/vetmanager-api-gateway. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package vetmanager-api-gateway

Vetmanager Api Gateway

Vetmanager Logo

Помощник для работы с АПИ Ветменеджера. Берет на себя: 1) авторизация; 2) получение данных и представление их в виде объектов и типизированных свойств этих объектов; 3) удобное получения связанных моделей с помощью методов полученных объектов (моделей); 4) отправка новых моделей, редактирование, удаление; 5) удобство для реализации кеширования: возможность предоставление модели в виде массива, и создание модели из массива; 6) унификация работы с моделями вне зависимости от способа получения.

Используется в основе библиотека для составления Query для АПИ-запросов Vetmanager - тут же документация к использованию классов для сложных АПИ-запросов: Builder и PagedQuery

Vetmanager REST API Docs

Vetmanager REST API Postman Collection

Официальный сайт Vetmanager.ru

Для чего?

С помощью этой библиотеки удобно получать данные с АПИ Ветменеджера. Данные приходят в виде Active Records. Каждый Active Record связан с одним или с несколькими другими Active Records. Пример кода:

Установка

Короткое оглавление

Подробное использование:

Начало работы/Конфигурация подключения

Простыми словами, объект ApiGateway - связующее звено с работой с АПИ Ветменеджера. Больше ничего создавать не нужно будет

  1. С помощью субдомена и АПИ ключа

  2. С помощью полного пути к серверу и АПИ ключа

  3. С помощью субдомена, имени АПИ-сервиса и АПИ ключа (для специальных внутренних сервисов)

  4. С помощью полного пути к серверу, имени АПИ-сервиса и АПИ ключа (для специальных внутренних сервисов)

Первоначальное получение объектов

Вся логика получения Active Record вынесена в соответсвующий Facade. Вот пример получения клиента по ID:

То есть в этой библиотеке для каждого вида Active Record существует свой Facade. В Facade выделена логика работы АПИ-запросов и получения из ответов Active Record. Например, в Facade для Active Record Client содержится метод получения соответствующего Active Record по ID. Так же в Facade содержатся и другие методы получения (в том числе - через более сложные запросы - например, через фильтры).

Существуют Active Records, которые могут быть получены лишь с помощью конкретного АПИ-запроса. Например, MedicalCardByClient можно получить лишь по ID клиента. Недоступные методы получения в соответствующем фасаде просто не существуют

Получение объекта по ID

Получение всех объектов

Всегда возвращает массив моделей. Даже когда 1 объект получаем - обращаемся к нему через массив.

Получение объекта по Query запросу

Точно так же как и получение всех моделей, Query запросы всегда возвращают массив объектов. То есть даже когда 1 объект возвращается - обращаемся к нему через массив.

Ниже перечислены 3 варианта одного и того же запроса

1) С помощью Query Builder

[Ссылка на используемую библиотеку с большим количество примеров использования Builder](https://github.com/otis22/vetmanager-rest-api)

2) С помощью PagedQuery

[Ссылка на используемую библиотеку с большим количество примеров использования PagedQuery](https://github.com/otis22/vetmanager-rest-api)

С помощью этого объекта удобнее работать с пагинацией.

3) С помощью Get Parameters в виде строки

Сюда можно передать все те же Get-параметры, используемые в коллекции Postman. Более подробно о фильтрах, сортировке
и т.д. здесь - [Vetmanager REST API Docs](https://help.vetmanager.cloud/article/3029)

Альтернативные способы получения для конкретных моделей

Создание новых моделей

С помощью фасада и массива

С помощью Active Record и сеттеров

Редактирование моделей

С помощью фасада и массива

С помощью Active Record и сеттеров

Удаление моделей

С помощью фасада

С помощью Active Record

Пример представления данных модели

Получать каждое свойство через гет-метод. Типизация в каждом методе есть

Пример связанных запросов

Есть свойства объекта, которые вместо скалярных данных, возвращают другие объекты или массив объектов.

Пример обращения посложнее:

Та же запись, но с дополнительными переменными для понимания:

Нормализация объектов (приведение в массив)

С помощью этих методов несложно реализовать кеширование модели.

Каждый раз, когда нужно сделать повторяющийся одинаковый запрос:

1 - Попытаться получить уже закешированный объект в виде массива.

  • Если нашелся кеш:

    2 - создать объект из этого кеша.

  • Если не нашелся кеш:

    2 - сделать АПИ запрос на получение объекта

    3 - в кеш закинуть модель в виде массива для следующей PHP сессии

Получение модели в виде массива

Возвращаются данные в том же виде, в котором и были получены по АПИ

Создание объекта из данных в виде массива

  1. Получение одного объекта из закешированного массива модели (в виде ['id' => '12', '...' => ...]).

  2. Получение массива объектов из массива таких массивов с моделямм

Дополнительные особенности

Вспомогательный объект FullName

Например, у моделей User и Client есть геттер для FullName. У объекта FullName есть методы возвращающие полное имя в разном формате:

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

Вспомогательный объект FullPhone

Например, у модели Клиники есть метод возвращающий FullPhone. У FullPhone есть метод возвращающий телефон с кодом страны и выбранной маской номера, например в виде: +7(918)-277-21-21

Узнать возможность онлайн записи в клинике

Несколько вариантов. Возвращается bool:

Немного об устройстве библиотеки

Используемые библиотеки

  • Symfony Serializer - Для создания DTO из массива данных (десериализованный JSON) и обратного процесса ( нормализации)
  • Guzzle HTTP client - Для всех используемых запросов
  • vetmanager-rest-api - Помощник с Query-запросами АПИ Ветменджера

    Только при разработке:

  • PSALM
  • PHPUnit

Внутренние особенности

Для большинства моделей АПИ Ветменджер кроме запрашиваемой модели отдает и содержимое других связанных моделей. Это также зависит от вида запроса - например, при запросе по ID обычно приходит наибольшее число связанных моделей. Для пользователя этой библиотеки это скрыто: в любом случае вне зависимости от какой вида Active Record получен - все методы и связи с другими моделями доступны. А как именно при вызове метода будут получаться данные: из уже полученных данных или при помощи дополнительного запроса - это тоже берет на себя библиотека.

Вот пример для понимания устройства. Но для использования это вовсе неважно. В использовании каждый из полученных Active Record идентичен (так как обладают одним и тем же набором доступных методов, которые просто реализованы по-разному):

Разработка

  1. Копируем файл окружения из примера

  2. Заполняем .env
  3. Устанавливаем библиотеки

  4. Запуск юнит-тестов

Можно запускать другие команды, примеры можно посмотреть в composer.json в разделе scripts. Например:


All versions of vetmanager-api-gateway with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
guzzlehttp/guzzle Version ^7.5
otis22/vetmanager-rest-api Version ^0.1.11
ext-mbstring Version *
phpdocumentor/reflection-docblock Version ^5.3
symfony/serializer Version ^6.3
symfony/property-access Version ^6.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package ioncurly/vetmanager-api-gateway contains the following files

Loading the files please wait ....