Menu

Tree [bf8509] master /
 History

HTTPS access


File Date Author Commit
 lib 2024-04-14 Serż Minus Serż Minus [b9565d] Trailspaces
 src 2024-04-14 Serż Minus Serż Minus [a4bac4] Added Cache module
 t 2024-04-14 Serż Minus Serż Minus [b9565d] Trailspaces
 .gitignore 2023-12-07 Serż Minus Serż Minus [a7c52a] Release 1.05
 .proverc 2023-07-21 Serż Minus Serż Minus [24280e] Added new files
 Changes 2024-04-14 Serż Minus Serż Minus [a4bac4] Added Cache module
 INSTALL.md 2023-07-21 Serż Minus Serż Minus [24280e] Added new files
 LICENSE 2023-07-21 Serż Minus Serż Minus [24280e] Added new files
 MANIFEST 2024-04-14 Serż Minus Serż Minus [a4bac4] Added Cache module
 Makefile.PL 2023-07-21 Serż Minus Serż Minus [24280e] Added new files
 NOTES 2023-07-21 Serż Minus Serż Minus [24280e] Added new files
 README.md 2023-11-07 Serż Minus Serż Minus [6561f4] Added examples
 RELEASE.md 2024-04-15 Serż Minus Serż Minus [bf8509] Updated release instruction
 TODO 2023-07-21 Serż Minus Serż Minus [24280e] Added new files
 build.sh 2024-04-14 Serż Minus Serż Minus [b0a4b5] Builder modified

Read Me

WWW::Suffit

The Suffit core library

This library provides common functionality for all sub projects of the Suffit metasystem

RU

Выпуск библиотеки WWW::Suffit

Состоялся релиз библиотеки WWW::Suffit, а также других библитек пространства имён WWW::Suffit::* таких как WWW::Suffit::Server и WWW::Suffit::Client.
Библиотеки семейства WWW::Suffit позволяют:

  • создавать легковесные Mojolicious приложения в стиле Suffit;
  • создавать клиенты и серверы, работающие по стандарту Suffit API;
  • освободиться от множества тяжелых зависимостей, в том числе от CTK

Библиотека WWW::Suffit полностью совместима с последней версией Mojolicious 9.35

Стандарт Suffit API это условный протокол обмена сообщениями между сервером и клиентом поверх HTTP, который основывется на использовании JSON в качестве языкы сериализации данных и RESTful методологиях самого общения клиента и сервера. Из основных особенностей Suffit API можно отметить минималистичность и полное соответствие спецификации OpenAPI. На дату написания этого поста актуальна OpenAPI спецификации Suffit API версии 1.00

Пример обмена сообщениями между сервером и клиентом по спецификации стандарта Suffit API

Request JSON:

{
  "base_url": "https://localhost:8695",
  "code": "E0000",
  "datetime": "2023-07-27T16:26:39Z",
  "message": "Ok",
  "remote_addr": "127.0.0.1",
  "requestid": "3a8cbe4f",
  "status": true,
  "time": 1682764944,
  "version": "1.00"
}

Response JSON (Ok):

{
  "code": "E0000",
  "message": "Ok",
  "status": true
}

Response JSON (Error):

{
  "code": "E0001",
  "message": "Oops",
  "status": false
}

WWW::Suffit::Const

Модуль определяет константы стандарта Suffit API, помимо этого в этом модуле реализован простой PurePerl механизм получения констант FHS, наименования констант позаимствованы из документа Installation Directory Variables. Например, константа SHAREDSTATEDIR содержит вычисленное значение /var/lib

WWW::Suffit::Util

Модуль содержит несколько простых утилитарных функций, частично позаимствованных из модуля CTK::Util. При написании модуля было учтено, что большая часть утилитарных функций уже имеется в таких модулях, как Mojo::Util. Из наиболее критично-важных функций можно отметить следующие: dformat, fbytes, fduration, human2bytes, parse_time_offset, parse_expire. Список функций будет расти со временем, об этом я буду писать на страницах блога отдельными постами

WWW::Suffit::RefUtil

Этот модуль объеденяет в себе сразу несколько модулей Data::Util::PurePerl, Params::Classify, Ref::Util и CTK::TFVals но позаимствовано из них только самое важное и часто используемое. Большая часть приведенных модулей использует XS функции, когда как я поставил перед собой задачу реализовать функции на чистом Perl (PurePerl) жертвуя производительностью в пользу лёгкого портирования. Идеология Mojolicious целиком и полностью мной овладела и аккуратно вписалась в мой новый подход к написанию приложений. Очень надеюсь, что вы его тоже поддержите

WWW::Suffit::API

Это семейство подмодулей реализовано с целью документирования стандартных запросов и ответов. Модуль WWW::Suffit::API является автономным модулем и представляет собой документацию. В дальнейшем этот модуль будет пополняться новыми подмодулями и их описаниями. На текущий момент это просто "заглушка"

WWW::Suffit::Client

Еще один автономный модуль, созданный как наследних другого автономного модуля - WWW::Suffit::UserAgent. WWW::Suffit::Client реализует возможность общения с серверами, работающими по стандарту Suffit API. На сегодня реализовано 2 подмодуля - V1 и NoAPI. V1 модуль содержит методы Suffit API версии 1.xx (authn, authz, pubkey); NoAPI модуль содержит методы не являющиеся Suffit API методами, например: manifest, download, upload и remove

WWW::Suffit::Server

Этот автономный модуль реализует серверные хелперы и обработчики, например, ServerInfo. Помимо этого модуль реализует некоторые плагины Mojolicious

WWW::Suffit::UserAgent

Автономный модуль-враппер Mojo::UserAgent. Этот модуль оформлен в объектном стиле с учётом возможной миграции на другой базовый модуль агента. WWW::Suffit::UserAgent реализует методы полуения статуса и ошибок согласно спецификации стандарта Suffit API, помимо этого модуль реализует метод проверки доступности API сервере - check

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.