Ada*_*lor 9 api perl web-services
我正在围绕REST Web服务编写一个Perl包装器模块,我希望能够就如何最好地构建模块提供一些建议.
我一直在寻找几个不同的Perl模块以获得灵感.
Flickr::Simple2基本上是一个大文件,其中的方法包含Flickr API中的不同方法,例如getPhotos()等.
Flickr::API是用于发出HTTP请求的另一个模块(LWP)的子类.因此,基本上它只允许您使用LWP通过模块进行调用,该模块转到正确的API方法/ URL,而无需自己定义任何包装器方法.这解释得很差 - 但基本上它有一个方法,它接受一个参数(一个API方法名称)并构造正确的API调用,例如request()/ response().
替代设计将类似于第一次描述,但不那么单一,具有用于API的单独"区域"的单独类.
我想遵循现代/最佳实践Perl方法,所以我Dist::Zilla用来构建模块和MooseOO的东西,但我很欣赏一些关于如何实际设计/构建我的包装器的输入.
指南/教程或指向其他精心设计的模块的指南将不胜感激.
干杯
这在某种程度上取决于您尝试包装的API的广度/深度.
如果它只有一些简单的API调用,第一种方法就可以了.
如果它有非常复杂的API,你希望向用户公开"简单"模式,一种模式是将主模块和子类化为Main :: Module :: Simple,它将环绕主底层模块.
正如您所指出的,非常广泛的API可能会受益于被分成具有并行类(可能继承自或使用基类)负责包装每个区域的区域.只需确保将所有常见内容都考虑在内,以便对任何代码/设计重复进行操作.