module Make:
type 'a
monad
It makes sense to wrap in a monadic system such as Lwt
those functions
that may take some time to complete. If that is the case, then any module
that implements this signature should be declared as having module type
Bookaml_amazon.ENGINE with type 'a monad = 'a Lwt.t
. Nevertheless,
for the sake of flexibility we do not actually mandate that Lwt
be used,
and hence why this abstract type 'a monad
exists. It is in fact possible
for the implementation to use no monad-based system at all, in which case the
identity monad may be declared: Bookaml_amazon.ENGINE with type 'a monad = 'a
.
val find_some_books : ?page:int ->
credential:Bookaml_amazon.credential ->
Bookaml_amazon.criteria ->
(int * int * Bookaml_book.t list) monad
Finds some of the books that match the given search criteria. The result
is a 3-tuple consisting of the total number of books matching the critera,
the total number of result pages, and a list of books for the current page.
Note that only one page of results (consisting of a maximum of 10 books)
can be obtained per invocation of this function. By default, the first
page of results is returned. If you wish to obtain a different result
page, then set parameter
page
with the corresponding page number. If
you wish to obtain all books from all result pages, then consult function
Bookaml_amazon.ENGINE.find_all_books
.
val find_all_books : credential:Bookaml_amazon.credential ->
Bookaml_amazon.criteria -> Bookaml_book.t list monad
Finds all the books that match the given search criteria. Note that if
the given search criteria are not particularly stringent, this function
can easily return hundreds of results and require several independent
requests to Amazon's servers. If you are only interested in the most
relevant results, then function
Bookaml_amazon.ENGINE.find_some_books
is more appropriate.
val book_from_isbn : credential:Bookaml_amazon.credential ->
Bookaml_isbn.t -> Bookaml_book.t option monad
Returns the book that matches the given ISBN. Note that it actually
returns Some book
if the book was retrievable and None
otherwise.
val book_from_isbn_exn : credential:Bookaml_amazon.credential ->
Bookaml_isbn.t -> Bookaml_book.t monad