/poke-speare

Toy project to experiment with rust async, actix, reqwest and wiremock.

Primary LanguageRustApache License 2.0Apache-2.0

Poke-speare

Crates.io CI Coverage Status docker unsafe forbidden API docs

REST API that, given a Pokémon name, returns its description in Shakespeare's style.

Pokemon description is taken from PokéAPI and it is converted by using Shakespeare translator.

Usage

You can use poke-speare both as a web server and as a rust library

Web server

$ curl http://localhost:5000/pokemon/charizard

{
    "name": "charizard",
    "description": "Charizard flies 'round the sky in search of powerful opponents."
}

Library

let shakespeare_api_token = None;
let pokemon_descr = poke_speare::get_description("charizard", shakespeare_api_token).await;
println!("description: {}", pokemon_descr);

Install

Cargo

  • Install the rust toolchain in order to have cargo installed by following this guide.
  • run cargo install poke-speare

Docker

$ docker pull marcoieni/poke-speare

Run

Cargo

Make sure that ~/.cargo/bin is in your PATH.

$ poke-speare

Docker

$ docker run -p 5000:5000 marcoieni/poke-speare

Settings

You can set environment variable in order to change settings. For example:

$ RUST_LOG=debug POKE_SPEARE_PORT=5001 poke-speare

In the following there are all environment variables with their default values:

  • RUST_LOG: error. Other possible values: info
  • POKE_SPEARE_HOST: "127.0.0.1"
  • POKE_SPEARE_PORT: 5000
  • POKE_SPEARE_SHAKESPEARE_TOKEN: "". Shakespeare translator has a rate limit of 60 API calls a day with distribution of 5 calls an hour. Set the environment variable POKE_SPEARE_SHAKESPEARE_TOKEN if you have a FunTranslations Api Secret.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Credits