Download the PHP package tochka-developers/openrpc without Composer

On this page you can find all versions of the php package tochka-developers/openrpc. 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 openrpc

OpenRpc (Laravel/Lumen)

Описание

Пакет для автоматической генерации документации JsonRpc-сервера по стандарту OpenRpc (https://spec.open-rpc.org/). Совместим с пакетом tochka-developers/jsonrpc>=v4.0

Установка

Установка через composer:

Laravel

Для Laravel есть возможность опубликовать конфигурацию для всех пакетов:

Для того, чтобы опубликовать только конфигурацию данного пакета, можно воспользоваться опцией tag

Lumen

В Lumen отсутствует команда vendor:publish, поэтому делается это вручную. Если в проекте еще нет директории для конфигураций - создайте ее:

Скопируйте в нее конфигурацию openrpc:

Вместо config/openrpc.php нужно указать любую другую директорию, где хранятся ваши конфиги и название будущего конфига. Далее необходимо прописать скопированный конфиг в bootstrap/app.php

Так же прописать провайдер:

Где jsonrpc - имя файла конфига

Для корректной работы так же необходимы фасады:

Настройка точки входа

Укажите в конфигурации openrpc.endpoint точку входа для получения схемы OpenRpc:

В дальнейшем эта точка входа будет использована для Service Discovery Method.

Кеширование

OpenRpc может кешировать схему с описанием JsonRpc, чтобы не собирать ее каждый раз при вызове endpoint. Для создания кеша используйте команду artisan:

После выполнения этой команды будет выполнена сборка схемы и сохранена в файл кеша. При каждом следующем обращении к OpenRpc будет использован именно этот файл, повторной пересборки происходить не будет.

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

Чтобы очистить кеш - используйте команду artisan:

Рекомендуется запускать команду кеширования сразу после деплоя перед запуском приложения.

Как использовать

Аннотации и атрибуты

Некоторые пометки или уточнения для классов, методов и полей могут использовать аннотации (https://www.doctrine-project.org/projects/doctrine-annotations/en/1.10/index.html) или атрибуты (https://www.php.net/manual/ru/language.attributes.overview.php). Все классы аннотаций/атрибутов обратно совместимы и могут работать и как аннотации (для версии PHP<8), и как атрибуты (для версии PHP>=8). Примеры использования аннотаций:

Пример использования атрибутов:

Расширенное описание

Во многих объектах спецификации OpenRpc есть поле description, которое позволяет использовать MarkDown разметку. Для более удобной организации есть возможность выносить эти описания в отдельные файлы с расширением .md, и затем в описании ссылаться на них:

В данном случае вместо указанного текста в поле подставится содержимое файла resources/views/docs/description.md. Будьте внимательны! Документы должны находиться в папке resources, так как путь к файлу строится относительно этой директории.

Основная информация

Вся основная информация о вашем приложении заполняется в конфигурации openrpc.php. В дефолтной конфигурации описаны все поля, а также приведены примеры

Информация о серверах (ендпойнты)

Ваше приложение может иметь несколько точек входа с разным списком методов. Все возможные конфигурации точек входа JsonRpc-сервера описываются в конфигурации jsonrpc.php. Для корректного вывода информации о точках входа в OpenRpc необходимо добавить еще несколько полей в конфигурацию каждого сервера JsonRpc:

Информация о методах

OpenRpc собирает информацию о доступных методах, получая информацию о маршрутах из JsonRpc-сервера.

Информация о формате запроса

Если в методе используется аннотация/атрибут ApiMapRequestToObject , то в качестве параметров метода будут указаны поля класса, в который JsonRpc будет маппить запрос.

Если используется стандартное прокидывание параметров запроса в параметры метода - то OpenRpc будет собирать информацию об используемых параметрах из этих параметров метода. При этом учитывается типизация, а также дополнительной описание параметров с помощью PhpDoc (тег @param).

Вы можете уточнять тип вложенных в массив элементов также с помощью тегов @param и @return:

Если в качестве типа указан какой-либо класс - OpenRpc попытается описать внутреннюю структуру класса.

По умолчанию выбираются все публичные поля класса. Кроме того, учитываются поля, описанные в phpDoc (помеченные атрибутом @property).

В качестве типа аргумента всегда выбирается тип поля. Поле считается обязательным, если у него нет дефолтного значения.

Если в качестве типа поля указан array - вы можете уточнить тип элементов массива с помощью phpDoc в атрибуте @var:

Если в качестве типа указан экземпляр BenSampo\Enum\Enum - OpenRpc автоматически получит все варианты значений для поля, и попытается вычислить тип. Информация о возможных значениях будет отражена в схеме.

Если в качестве типа указан экземпляр Illuminate\Database\Eloquent\Model - OpenRpc получит все возможные поля из phpDoc (как указано выше), а затем попытается отфильтровать их в соответствии с правилами, указанными в hidden и visible (https://laravel.com/docs/8.x/eloquent-serialization#hiding-attributes-from-json)

Для указания примеров значений для аргумента используйте аннотацию/атрибут ApiValueExample:

Для указания вариантов возможных значений (если не используется Enum) - используйте аннотацию/атрибут ApiExpectedValues:

Для указания формата объекта (если для него нет отдельного класса) - используйте аннотацию/атрибут ApiArrayShape:

Первая строка описания поля в phpDoc считается summary - и отображается в кратком описании аргумента в схеме. Вторая и следующие строки описания поля в phpDoc считаются description - и отображаются в полном описании аргумента в схеме. При этом разрешено ссылаться на MarkDown файл:

Информация об ответе

OpenRpc забирает информацию о формате ответа из типа, указанного в качестве результата метода. При этом тип может быть указан также в phpDoc этого метода. При этом все возможности OpenRpc, описанные в предыдущем пункте для запросов - будут также работать и для описания формата ответа.

Кроме того, дополнительно есть возможность описать формат ответа с помощью атрибута/аннотации ApiArrayShape:

Также аннотацию/атрибут ApiArrayShape можно использовать для описания структуры класса:

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

Примеры запросов и ответов

В разработке...

Ошибки

В разработке...


All versions of openrpc with dependencies

PHP Build Version
Package Version
Requires php Version >=8.0
ext-json Version *
illuminate/support Version ^8.0|^9.0|^10.0
illuminate/console Version ^8.0|^9.0|^10.0
illuminate/container Version ^8.0|^9.0|^10.0
illuminate/pipeline Version ^8.0|^9.0|^10.0
spiral/attributes Version ^2.8
tochka-developers/jsonrpc Version ^4.0|^5.0
tochka-developers/jsonrpc-annotations Version ^1.1
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 tochka-developers/openrpc contains the following files

Loading the files please wait ....