Estoy escribiendo un módulo envoltorio Perl en torno a un servicio web REST y espero tener algunos consejos sobre la mejor manera de diseñar el módulo.API Wrapper Architecture Best Practice
He estado buscando un par de diferentes módulos de Perl para inspirarse.
Flickr::Simple2
es básicamente un gran archivo con métodos que abarcan los diferentes métodos en la API de Flickr, p. getPhotos()
etc.
Flickr::API
es una subclase de otro módulo (LWP) para realizar solicitudes HTTP. Así que, básicamente, solo le permite realizar llamadas a través del módulo, utilizando LWP, que va al método API correcto/URL sin definir ningún método de envoltura. Eso se explica bastante mal, pero básicamente tiene un método que toma un argumento (un nombre de método API) y construye la llamada API correcta, p. request()
/response()
.
Un diseño alternativo sería como el primero descrito, pero menos monolítico, con clases separadas para "áreas" separadas de la API.
Me gustaría seguir los métodos modernos/mejores prácticas de Perl, así que estoy usando Dist::Zilla
para construir el módulo y Moose
para las cosas OO pero agradecería algo de información sobre cómo diseñar/diseñar realmente mi envoltorio.
Se agradecerán guías/tutoriales o sugerencias para otros módulos bien diseñados.
Saludos
Creo que la pregunta era sobre el envoltorio API, ¿no cómo escribir la API? – itsaboutcode
@itsaboutcode: la pregunta es sobre envolver una API web con una API de Perl. Esto está escribiendo otra API, por lo que los consejos de Joshua Bloch son relevantes. – dolmen