Лучшая практика архитектуры обертки API

Я пишу модуль обертки Perl вокруг веб-сервиса REST, и я надеюсь иметь некоторый совет относительно того, как лучше всего спроектировать модуль.

Я смотрел на несколько различных модулей Perl для вдохновения.

Flickr::Simple2 в основном один большой файл с методами, переносящими различные методы в API Flickr, например. getPhotos() и т.д.

Flickr::API подкласс другого модуля (LWP) для того, чтобы сделать Запросы HTTP. Так в основном это просто позволяет Вам выполнять вызовы через модуль, с помощью LWP, которые переходят к корректному МЕТОДУ/URL API, не определяя методов обертки самому. Это объяснило довольно плохо - но в основном это имеет метод, который берет аргумент (имя метода API) и создает корректный вызов API, например. request()/response().

Альтернативный дизайн был бы похож на описанное первое, но менее монолитное с отдельными классами для отдельных "областей" API.

Я хотел бы следовать современным методам Perl / методам Perl лучшей практики, таким образом, я использую Dist::Zilla создавать модуль и Moose для материала OO, но я ценил бы некоторый вход о том, как на самом деле разрабатывать/проектировать мою обертку.

Руководства/учебные руководства или указатели на другие хорошо разработанные модули ценились бы.

Удачи

9
задан daxim 21 June 2010 в 14:10
поделиться

2 ответа

Это в некоторой степени зависит от широты / глубины API, который вы пытаетесь обернуть.

Если у него всего несколько простых вызовов API, первый подход подойдет.

Если у него есть ОЧЕНЬ сложные API-интерфейсы, которые имеют "простой" режим, который вы хотите предоставить пользователю, один из шаблонов состоит в том, чтобы иметь основной модуль и подклассифицировать его как Main :: Module :: Simple, который будет обертывать основной базовый модуль. .

Как вы заметили, очень широкий API может выиграть от разделения на области с параллельными классами (возможно, унаследованными от базового класса или использующими его), отвечающими за обертку каждой области. Просто не забудьте учесть все общие вещи, чтобы избежать дублирования кода / дизайна.

6
ответ дан 4 December 2019 в 14:26
поделиться

У Джошуа Блоха есть хорошие советы по теме « Как создать хороший API и почему это важно » (видео, 2007).

Слайды (PDF) .

8
ответ дан 4 December 2019 в 14:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: