Nanoseconds Produce Minutes

    quotebook-api

    1.0.7 • Public • Published

    Quotebook API

    The Quotebook API JavaScript library provides simple access to Quotebook API for applications written in server-side JavaScript.

    Currently, we have a growing database of over 80,000+ quotes from 20,000+ authors and up to 120 different tags. Search by authors and tags to retrieve quotes in bulk or in single quotes.

    Note: We don't recommend using Quotebook API in client-side JavaScript in the browser because it will leak your API key to the public.

    If you have any questions, please contact helloquotebook@gmail.com.

    Installation

    Install the official NPM package of the Quotebook API:

    npm install quotebook-api --save
    # or
    yarn add quotebook-api
    

    Requirements

    * Node 10 or higher

    Usage

    The library needs to be configured to your account's API key. Set apiKey to it's value:

    const { Client } = require("quotebook-api");
    const client = Client({ apiKey: "api-key122345" });
    
    client
      .fetchRandom()
      .then(response => console.log(response.data.result))
      .catch(e => console.log(e));

    If apiKey is null, then the request will fail. Please use the test apiKey which is api-key122345.

    API Reference

    Retrieve a random quote

    const { Client } = require("quotebook-api");
    const client = Client({ apiKey: "api-key122345" });
    
    // Promise
    client
      .fetchRandom()
      .then(response => console.log(response.data.result))
      .catch(e => console.log(e));
    
    // Async-Await
    (async () => {
      try {
        const response = await client.fetchRandom();
        return console.log(response.data.result);
      } catch (e) {
        return console.log(e);
      }
    })();

    Search for quote

    const { Client } = require("quotebook-api");
    const client = Client({ apiKey: "api-key122345" });
    
    // Promise
    client
      .search({ q: "I can't change the direction of the wind" })
      .then(response => console.log(response.data.result))
      .catch(e => console.log(e));
    
    // Async-Await
    (async () => {
      try {
        const response = await client.search({
          q: "I can't change the direction of the wind"
        });
        return console.log(response.data.result);
      } catch (e) {
        return console.log(e);
      }
    })();

    Retrieve author names - in bulk of 30

    const { Client } = require("quotebook-api");
    const client = Client({ apiKey: "api-key122345" });
    
    // Promise
    client
      .fetchAllAuthors()
      .then(response => console.log(response.data.result))
      .catch(e => console.log(e));
    
    // Async-Await
    (async () => {
      try {
        const response = await client.fetchAllAuthors();
        return console.log(response.data.result);
      } catch (e) {
        return console.log(e);
      }
    })();

    Retrieve a quote based on author name

    const { Client } = require("quotebook-api");
    const client = Client({ apiKey: "api-key122345" });
    
    // Promise
    client
      .fetchByAuthor({ q: "Bruce Lee" })
      .then(response => console.log(response.data.result))
      .catch(e => console.log(e));
    
    // Async-Await
    (async () => {
      try {
        const response = await client.fetchByAuthor({ q: "Bruce Lee" });
        return console.log(response.data.result);
      } catch (e) {
        return console.log(e);
      }
    })();

    Retrieve list of all tags - 117 in total

    const { Client } = require("quotebook-api");
    const client = Client({ apiKey: "api-key122345" });
    
    // Promise
    client
      .fetchAllTags()
      .then(response => console.log(response.data.result))
      .catch(e => console.log(e));
    
    // Async-Await
    (async () => {
      try {
        const response = await client.fetchAllTags();
        return console.log(response.data.result);
      } catch (e) {
        return console.log(e);
      }
    })();

    Retrieve by tag - in bulk of 30

    const { Client } = require("quotebook-api");
    const client = Client({ apiKey: "api-key122345" });
    
    // Promise
    client
      .fetchByTag({ q: "age" })
      .then(response => console.log(response.data.result))
      .catch(e => console.log(e));
    
    // Async-Await
    (async () => {
      try {
        const response = await client.fetchByTag({ q: "age" });
        return console.log(response.data.result);
      } catch (e) {
        return console.log(e);
      }
    })();

    Testing

    Unit tests are available for each feature:

    • GET Health Check
    • GET Authentication error (failed to pass in API key)
    • GET Random Quote
    • GET All Authors
    • GET All Quotes by Author
    • GET List of Tags
    • GET All Quotes by Tag
    • GET Search for similar Quote
    npm run test
    

    Miscellaneous

    Each request is limited to 30 quotes. To increase the limit, kindly email helloquotebook@gmail.com!

    Contributions

    We are happy to accept any pull requests from individual contributors so long as they have well defined tests.

    Feature Requests

    Please reach out to us for any feature requests and we will try to allocate resources for it.

    Install

    npm i quotebook-api

    Homepage

    quotebook.io

    DownloadsWeekly Downloads

    8

    Version

    1.0.7

    License

    MIT

    Unpacked Size

    10.8 kB

    Total Files

    4

    Last publish

    Collaborators

    • quotebook