@trivia-api/fetch
Version:
Functions to fetch data from The Trivia API.
96 lines (67 loc) • 2.14 kB
Markdown
# Trivia API Fetch Client
Functions to fetch data from [The Trivia API](https://the-trivia-api.com).
## Installation
Install with `npm install @trivia-api/fetch`.
## Usage
### Functions
#### getQuestions
```js
import { getQuestions } from "@trivia-api/fetch";
getQuestions({ limit: 5 }).then((questions) => {
// questions is an array of questions
});
```
#### searchQuestions
```js
import { searchQuestions } from "@trivia-api/fetch";
searchQuestions({ freetext: "france" }).then((questions) => {
// questions is an array of questions that have either the tag 'france'
// or match 'france' to a freetext search on the question.
});
```
#### getMetadata
```js
import { getMetadata } from "@trivia-api/fetch";
getMetadata().then((metadata) => {
// metadata is an object representing the number of questions in the API, broken down by category and state
});
```
#### getTags
```js
import { getTags } from "@trivia-api/fetch";
getTags().then((tags) => {
// tags is an array of all the tags used by questions in the API
});
```
#### updateQuestion
```js
import { updateQuestion } from "@trivia-api/fetch";
const question = await getQuestions()[0];
const newQuestion = {
...question,
correctAnswer: "A different answer",
};
const API_KEY = "abcd1234";
try {
await updateQuestion(API_KEY, newQuestion);
// If the promise resolves then the question has been successfully updated
} catch {
// If the promise is rejected then the question has not been updated. Did you
// pass in a valid API key? Is the ID wrong? Did you miss a required property?
}
```
#### createSession
```js
import { createSession, getQuestions } from "@trivia-api/fetch";
createSession().then((session) => {
// You can use the session object to request questions with no duplicates
// Request 10 questions from the session you just created
getQuestions({ session: session.id, limit: 10 });
/**
* Request 10 more questions from the session you just created. These
* questions are guaranteed to be different to the questions previously
* received.
*/
getQuestions({ session: session.id, limit: 10 });
});
```