Quotable — это бесплатный API котировок с открытым исходным кодом. Первоначально он был создан как часть проекта FreeCodeCamp. Если вы заинтересованы в участии, пожалуйста, ознакомьтесь с Руководством для участников.
Существует ограничение скорости в 180 запросов в минуту на один IP-адрес. Если вы превысите ограничение скорости, API ответит ошибкой 429
.
https://api.quotable.io
Вы можете опробовать API в нашей общедоступной рабочей области Postman.
GET /random
Возвращает одну случайную цитату из базы данных
⛔️ Этот метод устарел в пользу метода «Получить случайные цитаты».
Параметры запроса
параметр | тип | Описание |
---|---|---|
максимальная длина | Int | Максимальная длина в символах (можно комбинировать с minLength ) |
миндлина | Int | Минимальная длина в символах (можно комбинировать с maxLength ) |
теги | String | Получите случайную цитату с определенными тегами. Для этого требуется список из одного или нескольких имен тегов, разделенных запятой (что означает AND ) или вертикальной чертой (что означает OR ). Список, разделенный запятыми, будет соответствовать цитатам, имеющим все указанные теги. В то время как список, разделенный вертикальной чертой ( | ), будет соответствовать кавычкам, имеющим любой из предоставленных тегов. Имена тегов не чувствительны к регистру. Теги, состоящие из нескольких слов, могут быть записаны в регистре кебаб («имя тега») или разделены пробелами («имя тега»). |
автор | String | Получите случайную цитату одного или нескольких авторов. Значением может быть name автора или slug . Чтобы включить цитаты нескольких авторов, предоставьте разделенный вертикальной чертой список имен/слагов авторов. |
идентификатор автора | String | deprecated То же, что и параметр author , за исключением того, что вместо slug используется _id автора. |
Ответ
{
_id: string
// The quotation text
content: string
// The full name of the author
author: string
// The `slug` of the quote author
authorSlug: string
// The length of quote (number of characters)
length: number
// An array of tag names for this quote
tags: string [ ]
}
GET /quotes/random
Получите одну или несколько случайных цитат из базы данных. Этот метод поддерживает несколько фильтров, которые можно использовать для получения случайных цитат с определенными свойствами (например, тегами, длиной цитаты и т. д.).
По умолчанию этот метод возвращает одну случайную цитату. Вы можете указать количество возвращаемых случайных котировок с помощью параметра limit
.
️ Этот метод эквивалентен конечной точке/random
. Единственное отличие — это формат ответа: вместо перенастройки одного объектаQuote
этот метод возвращаетArray
объектовQuote
.
параметр | тип | Описание |
---|---|---|
предел | Int | default: 1 min: 1 max: 50 Количество случайных цитат, которые необходимо получить. |
максимальная длина | Int | Максимальная длина в символах (можно комбинировать с minLength ) |
миндлина | Int | Минимальная длина в символах (можно комбинировать с maxLength ) |
теги | String | Получите случайную цитату с определенными тегами. Для этого требуется список из одного или нескольких имен тегов, разделенных запятой (что означает AND ) или вертикальной чертой (что означает OR ). Список, разделенный запятыми, будет соответствовать цитатам, имеющим все указанные теги. В то время как список, разделенный вертикальной чертой ( | ), будет соответствовать кавычкам, имеющим любой из предоставленных тегов. Имена тегов не чувствительны к регистру. Теги, состоящие из нескольких слов, могут быть записаны в регистре кебаб («имя тега») или разделены пробелами («имя тега»). |
автор | String | Получите случайную цитату одного или нескольких авторов. Значением может быть name автора или slug . Чтобы включить цитаты нескольких авторов, предоставьте список имен авторов/слагов, разделенный вертикальной чертой. |
идентификатор автора | String | deprecated То же, что и параметр author , за исключением того, что вместо slug используется _id автора. |
Ответ
// An array containing one or more Quotes
Array < {
_id : string
// The quotation text
content : string
// The full name of the author
author : string
// The `slug` of the quote author
authorSlug : string
// The length of quote (number of characters)
length : number
// An array of tag names for this quote
tags : string [ ]
} >
Примеры
Получить случайную цитату попробуйте в браузере
GET /quotes/random
Получите 5 случайных цитат, попробуйте в браузере
GET /quotes/random?limit=3
Случайная цитата с тегами «технология» AND
«знаменитые цитаты» попробуйте в браузере
GET /quotes/random?tags=technology,famous-quotes
Случайная цитата с тегами «История» OR
«Гражданские права» попробуйте в браузере
GET /quotes/random?tags=history|civil-rights
Случайная цитата длиной не более 50 символов попробуйте в браузере
GET /quotes/random?maxLength=50
Случайная цитата длиной от 100 до 140 символов попробуйте в браузере
GET /quotes/random?minLength=100&maxLength=140
GET /quotes
Получите все котировки, соответствующие данному запросу. По умолчанию возвращается постраничный список всех цитат, отсортированный по _id
. Цитаты также можно фильтровать по автору, тегу и длине.
Параметры запроса
параметр | тип | Описание |
---|---|---|
максимальная длина | Int | Максимальная длина в символах (можно комбинировать с minLength ) |
миндлина | Int | Минимальная длина в символах (можно комбинировать с maxLength ) |
теги | String | Фильтровать цитаты по тегам. Принимает список из одного или нескольких имен тегов, разделенных запятой (что означает AND ) или вертикальной чертой (что означает OR ). Список, разделенный запятыми, будет соответствовать цитатам, имеющим все указанные теги. В то время как список, разделенный вертикальной чертой ( | ), будет соответствовать кавычкам, имеющим любой из предоставленных тегов. Имена тегов не чувствительны к регистру. Теги, состоящие из нескольких слов, могут быть записаны в регистре кебаб («имя тега») или разделены пробелами («имя тега»). |
автор | String | Получите цитаты конкретного автора. Значением может быть name автора или slug . Чтобы получить цитаты нескольких авторов, предоставьте список имен авторов/слагов, разделенный вертикальной чертой. |
идентификатор автора | String | deprecated То же, что и параметр author , за исключением того, что вместо slug используется _id автора. |
Сортировать по | enum | Default: "dateAdded" values: "dateAdded", "dateModified", "author", "content" Поле, используемое для сортировки котировок |
заказ | enum | values: "asc", "desc" default: depends on sortBy Порядок сортировки результатов. Порядок по умолчанию зависит от поля sortBy. Для строковых полей, отсортированных в алфавитном порядке, порядок по умолчанию — возрастающий. Для полей чисел и дат порядок по умолчанию — по убыванию. |
предел | Int | Min: 1 Max: 150 Default: 20 Устанавливает количество результатов на странице. |
страница | Int | Min: 1 Default: 1 Страница результатов для возврата. Если значение превышает общее количество страниц, запрос не вернет никаких результатов. |
Ответ
{
// The number of quotes returned in this response
count: number
// The total number of quotes matching this query
totalCount: number
// The current page number
page: number
// The total number of pages matching this request
totalPages: number
// The 1-based index of the last result included in the current response.
lastItemIndex: number
// The array of quotes
results : Array < {
_id : string
// The quotation text
content : string
// The full name of the author
author : string
// The `slug` of the quote author
authorSlug : string
// The length of quote (number of characters)
length : number
// An array of tag names for this quote
tags : string [ ]
} >
}
Примеры
Получите первую страницу котировок с 20 результатами на странице, попробуйте в браузере
GET /quotes?page=1
Получите вторую страницу котировок с 20 результатами на странице, попробуйте в браузере
GET /quotes?page=2
Получить все цитаты с тегами love
OR
happiness
попробуйте в браузере
GET /quotes?tags=love|happiness
Получите все цитаты с тегами technology
AND
famous-quotes
попробуйте в браузере.
GET /quotes?tags=technology,famous-quotes
Получите все цитаты автора, используя slug
автора. попробуйте в браузере
GET /quotes?author=albert-einstein
GET /quotes/:id
Получить предложение по его идентификатору
Ответ
{
_id: string
// The quotation text
content: string
// The full name of the author
author: string
// The length of quote (number of characters)
length: number
// An array of tag names for this quote
tags: string [ ]
}
GET /authors
Получить всех авторов, соответствующих данному запросу. Эту конечную точку можно использовать для составления списка авторов с несколькими вариантами сортировки и фильтрации. Его также можно использовать для получения сведений об авторе для одного или нескольких конкретных авторов, используя ярлык или идентификаторы автора.
Параметры запроса
параметр | тип | Описание |
---|---|---|
слизняк | string | Фильтровать авторов по ярлыку. Значением может быть один или несколько ярлыков автора. Чтобы получить несколько авторов по слагу, значение должно представлять собой список слагов, разделенных вертикальной чертой. |
Сортировать по | enum | По умолчанию: values: "dateAdded", "dateModified", "name", "quoteCount" Default: "name" : «dateAdded», «dateModified», «name», «quoteCount».Поле, используемое для сортировки авторов. |
заказ | enum | values: "asc", "desc" Порядок сортировки результатов. Порядок по умолчанию зависит от поля sortBy. Для строковых полей, отсортированных по алфавиту (т. е. name ), порядок по умолчанию — возрастающий. Для полей чисел и дат (т. е. quoteCount ) порядок по умолчанию — по убыванию. |
предел | Int | Min: 1 Max: 150 Default: 20 Устанавливает количество результатов на странице. |
страница | Int | Min: 1 Default: 1 Страница результатов для возврата. Если значение превышает общее количество страниц, запрос не вернет никаких результатов. |
Ответ
{
// The number of results included in this response.
count: number
// The total number of results matching this request.
totalCount: number
// The current page number
page: number
// The total number of pages matching this request
totalPages: number
// The 1-based index of the last result included in this response. This shows the
// current pagination offset.
lastItemIndex: number | null
// The array of authors
results : Array < {
// A unique id for this author
_id : string
// A brief, one paragraph bio of the author. Source: wiki API
bio : string
// A one-line description of the author. Typically it is the person's primary
// occupation or what they are know for.
description : string
// The link to the author's wikipedia page or official website
link : string
// The authors full name
name : string
// A slug is a URL-friendly ID derived from the authors name. It can be used as
slug : string
// The number of quotes by this author
quoteCount : string
} >
}
Примеры
Получить всех авторов, отсортированных в алфавитном порядке по имени, попробуйте в браузере.
GET /authors?sortBy=name
Получить всех авторов, отсортированных по количеству цитат в порядке убывания, попробуйте в браузере
GET /authors?sortBy=quoteCount&order=desc
Получите одного автора по слизню. попробуйте в браузере
GET /authors?slug=albert-einstein
Получите несколько авторов по слагу. В этом случае вы предоставляете список слагов, разделенных вертикальными чертами, попробуйте в браузере.
GET /authors?slug=albert-einstein|abraham-lincoln
GET /search/quotes
Эта конечная точка позволяет вам искать цитаты по ключевым словам, содержанию и/или имени автора. В отличие от конечной точки List Quotes, этот метод основан на поиске Atlas и предназначен для управления пользовательским интерфейсом панели поиска.
Параметры запроса
Парам | Тип | Описание |
---|---|---|
запрос | String | Строка поиска. Запрос можно заключить в кавычки для поиска точной фразы. |
поля | String | Default: "content,author,tags" Укажите поля для поиска. Для этого требуется список имен полей, разделенных запятыми. Поддерживаемые поля поиска: «контент», «автор», «теги». По умолчанию поиск будет осуществляться по всем полям одновременно. |
fuzzyMaxEdits | Int | Min: 0 Max: 2 Default: 0 Максимальное количество односимвольных изменений, необходимых для соответствия указанному критерию поиска. Установка этого значения в ноль отключает нечеткое сопоставление. |
fuzzyMaxExpansions | Int | Max: 150 Min: 0 Default: 50 Если включен нечеткий поиск, это максимальное количество вариантов, которые можно сгенерировать и найти. Этот лимит применяется для каждого токена. |
предел | Int | Min: 0 Max: 150 Default: 20 Максимальное количество результатов на странице |
страница | Int | Min: 1 Default: 1 Устанавливает номер страницы для нумерации страниц |
Ответ
{
// The number of results included in this response.
count: number
// The total number of results matching this request.
totalCount: number
// The current page number
page: number
// The total number of pages matching this request
totalPages: number
// The 1-based index of the last result included in this response. This shows the
// current pagination offset.
lastItemIndex: number | null
// The array of authors
results : Array < {
// A unique id for this author
_id : string
// A brief, one paragraph bio of the author. Source: wiki API
bio : string
// A one-line description of the author. Typically it is the person's primary
// occupation or what they are know for.
description : string
// The link to the author's wikipedia page or official website
link : string
// The authors full name
name : string
// A slug is a URL-friendly ID derived from the authors name. It can be used as
slug : string
// The number of quotes by this author
quoteCount : string
} >
}
Примеры
Введите в поиск «любая хорошая технология — это, по сути, волшебство» (попробуйте в браузере).
GET /search/quotes?query=every good technology is basically magic
Результаты:
- «Любая достаточно развитая технология эквивалентна магии».
Искать фразу «разделенный дом»
GET /search/quotes?query=divided house
Результаты
- «Дом, разделившийся сам в себе, не устоит».
Найдите цитаты по ключевым словам «жизнь» или «счастье» (попробуйте в браузере)
GET /search/quotes?query=life happiness
Найдите цитаты автора по имени «Кеннеди» (попробуйте в браузере)
GET /search/quotes?query=Kennedy&fields=author
GET /search/authors
Эта конечная точка позволяет искать авторов по имени. Он предназначен для создания панели поиска для авторов, которая отображает предложения автозаполнения по мере ввода пользователем.
Example
query="John F. Kennedy"
terms=["john", "kennedy"]
term term
| |
John F. Kennedy Jr.
| |
initial suffix
Example
query="Saint Augustine of Hippo"
terms=["Augustine", "Hippo"]
term term
| |
Saint Augustine of Hippo
| |
prefix stopword
Параметры запроса
Парам | Тип | Описание |
---|---|---|
запрос | String | Поисковый запрос |
автозаполнение | Boolean | default: true Включает сопоставление автозаполнения |
matchThreshold | Int | Min: 1 Max: 3 Default: 2 Устанавливает минимальное количество поисковых терминов (слов), которым должен соответствовать автор, чтобы он был включен в результаты. По сути, если для этого параметра установлено значение 1, в результаты будут включены все авторы, имена которых соответствуют хотя бы одной части имени. Таким образом, в результаты запроса="Джон Ф. Кеннеди" будут включены все авторы, соответствующие "Джону" OR "Кеннеди".Если для этого параметра установлено значение 2 : когда поисковый запрос включает два или более «терминов», по крайней мере два из этих терминов должны совпадать. Таким образом, запрос="Джон Ф. Кеннеди" вернет только авторов, которые соответствуют "Джону" AND "Кеннеди". |
предел | Int | Min: Max: 150 Default: 20 Максимальное количество результатов на странице |
страница | Int | Min: 1 Default: 1 Устанавливает номер страницы для нумерации страниц |
Ответ
{
// The number of results included in this response.
count: number
// The total number of results matching this request.
totalCount: number
// The current page number
page: number
// The total number of pages matching this request
totalPages: number
// The 1-based index of the last result included in this response. This shows the
// current pagination offset.
lastItemIndex: number | null
// The array of authors
results : Array < {
// A unique id for this author
_id : string
// A brief, one paragraph bio of the author. Source: wiki API
bio : string
// A one-line description of the author. Typically it is the person's primary
// occupation or what they are know for.
description : string
// The link to the author's wikipedia page or official website
link : string
// The authors full name
name : string
// A slug is a URL-friendly ID derived from the authors name. It can be used as
slug : string
// The number of quotes by this author
quoteCount : string
} >
}
Примеры
Найдите автора по имени «Эйнштейн» (попробуйте в браузере)
GET /search/authors?query=Einstein
Результаты:
- Альберт Эйнштейн
Автозаполнение поиска по запросу «Эйнштейн» (попробуйте в браузере)
GET /search/authors?query=Einst
Результаты:
- Альберт Эйнштейн
Найдите «Джон Адамс» (попробуйте в браузере)
GET /search/authors?query=john adams
Результаты
- Джон Адамс
- Джон Куинси Адамс
Найдите «Джон Куинси Адамс» (попробуйте в браузере)
GET /search/authors?query=john quincy adams
Результаты:
- Джон Куинси Адамс)
- Джон Адамс
Получите одного Author
по slug
. Этот метод можно использовать для получения сведений об авторе, таких как биография, ссылка на веб-сайт и изображение профиля.
Если вы хотите получить все цитаты конкретного автора, используйте конечную точку /quotes и отфильтруйте по имени автора/слагу.
Если вы хотите получить несколько авторов по пулу в одном запросе, используйте конечную точку /authors и фильтруйте по slug
.
GET /authors/:id
Ответ
{
// A unique id for this author
_id: string
// A brief, one paragraph bio of the author. Source wiki API.
bio: string
// A one-line description of the author.
description: string
// The link to the author's wikipedia page or official website
link: string
// The authors full name
name: string
// A slug is a URL-friendly ID derived from the authors name. It can be used as
slug: string
// The number of quotes by this author
quoteCount: string
}
GET /tags
Получить список всех тегов
Параметры запроса
параметр | тип | Описание |
---|---|---|
Сортировать по | enum | По умолчанию: values: "dateAdded", "dateModified", "name", "quoteCount" Default: "name" : «dateAdded», «dateModified», «name», «quoteCount».Поле, используемое для сортировки тегов. |
заказ | enum | values: "asc", "desc" Порядок сортировки результатов. Порядок по умолчанию зависит от поля sortBy. Для строковых полей, отсортированных в алфавитном порядке, порядок по умолчанию — возрастающий. Для полей чисел и дат порядок по умолчанию — по убыванию. |
Ответ
{
// The number of all tags by this request
count: number
// The array of tags
results : Array < {
_id : string
name : string
} >
}