lotr_api 0.0.2 copy "lotr_api: ^0.0.2" to clipboard
lotr_api: ^0.0.2 copied to clipboard

API that accesses data on quotes, characters, books, etc. from the Tolkien universe.

The Lord of the Rings API #

This package facilitates communication with The One API, providing the user with data about The Lord of the Rings:

  • Books
  • Chapters
  • Characters
  • Movies
  • Quotes

The respective requests may be further specified by providing:

  • Pagination
  • Sorting
  • Filters

Prerequisites #

For most requests you will need an API access key which can be easily obtained here: https://the-one-api.dev/sign-up

Objects #

Before making any requests create an instance of LotrApi using your API access key:

var lotrApi = LotrApi(
  apiKey: 'INSERT_YOUR_API_ACCESS_KEY_HERE',
);

If you do not provide an API access key then you will only be able to call the /book endpoint.

Book #

In order to retrieve data about all books:

Response<Book> response = await lotrApi.getBooks();

The actual list of items is always stored in the docs attribute:

List<Book> books = response.docs;

The Response holds additional information such as the total number of items.

You can also directly get a specific book by providing its ID:

String firstBookId = books.first.id;
Book? firstBook = await lotrApi.getBook(
  id: firstBookId,
);

Chapter #

Response<Chapter> chapters = await lotrApi.getChapters();

Character #

Response<Character> response = await lotrApi.getCharacters();

Movie #

Response<Movie> response = await lotrApi.getMovies();

Quote #

Response<Quote> quotes = await lotrApi.getQuotes();

Response<Quote> quotes = await lotrApi.getCharacterQuotes(
  characterId: characterId, //TODO provide the character's ID
);

Response<Quote> quotes = await lotrApi.getMovieQuotes(
  movieId: movieId, //TODO provide the movie's ID
);

Pagination #

Response<Quote> quotes = await lotrApi.getQuotes(
  pagination: Pagination(
    limit: 10,
    offset: 2,
    page: 2,
  ),
);

Sorting #

Response<Quote> quotes = await lotrApi.getQuotes(
  sorting: QuoteSortings.byDialogAsc,
);

Filtering #

You may also apply multiple filters for each attribute, e.g.:

Response<Movie> response = await lotrApi.getMovies(
  nameFilters: [
    Exists(),
  ],
  budgetInMillionsFilters: [
    GreaterThanOrEquals(100),
    LessThan(250),
  ],
);

Available filters are:

  • Matches / NotMatches
  • Includes / Excludes
  • Exists / NotExists
  • MatchesRegex / NotMatchesRegex
  • Equals / NotEquals
  • LessThan / GreaterThan
  • LessThanOrEquals / GreaterThanOrEquals

Examples #

Check the example folder for more examples.

Support #

If you like this project, please support by starring the Github repository.

In case you discover a bug or have a feature request, feel free to create an issue there.

0
likes
140
pub points
0%
popularity

Publisher

unverified uploader

API that accesses data on quotes, characters, books, etc. from the Tolkien universe.

Repository (GitHub)
View/report issues

Documentation

Documentation
API reference

License

BSD-3-Clause (license)

Dependencies

http

More

Packages that depend on lotr_api