Библия. Очень простой и быстрый API на Rust
Простой API-сервис для чтения Библии и поиска по тексту.
Написан на Rust без веб-фреймворков: используется стандартный
TcpListener, api.aibible.ru.
URL Адрес API
API готово для использования: api.aibible.ru
Для самостоятельного развертывания
Код и документация на GitVerse: https://gitverse.ru/pavstyuk/bible_api_rust
Переводы
Параметр get-запросаtranslation
| Код | Описание |
|---|---|
rbo |
Русский текст. Используется по умолчанию. |
rst |
Русский текст. |
nasb |
Английский текст (New American Standard Bible). |
В каждом файле 66 книг. Названия книг в русских переводах русские, в nasb — английские.
Книги Библии
Параметр get-запросаbook
Названия книг для параметра book. Регистр не важен.
Порядок строк — канонический; в JSON-файлах русских переводов порядок
книг после Деяний отличается, но названия те же.
| Русское название | Английское название (nasb) |
|---|---|
| Бытие | Genesis |
| Исход | Exodus |
| Левит | Leviticus |
| Числа | Numbers |
| Второзаконие | Deuteronomy |
| Иисус Навин | Joshua |
| Судьи | Judges |
| Руфь | Ruth |
| 1 Царств | 1 Samuel |
| 2 Царств | 2 Samuel |
| 3 Царств | 1 Kings |
| 4 Царств | 2 Kings |
| 1 Паралипоменон | 1 Chronicles |
| 2 Паралипоменон | 2 Chronicles |
| Ездра | Ezra |
| Неемия | Nehemiah |
| Есфирь | Esther |
| Иов | Job |
| Псалтирь | Psalms |
| Притчи | Proverbs |
| Екклесиаст | Ecclesiastes |
| Песня Песней | Song of Solomon |
| Исаия | Isaiah |
| Иеремия | Jeremiah |
| Плач Иеремии | Lamentations |
| Иезекииль | Ezekiel |
| Даниил | Daniel |
| Осия | Hosea |
| Иоиль | Joel |
| Амос | Amos |
| Авдий | Obadiah |
| Иона | Jonah |
| Михей | Micah |
| Наум | Nahum |
| Аввакум | Habakkuk |
| Софония | Zephaniah |
| Аггей | Haggai |
| Захария | Zechariah |
| Малахия | Malachi |
| Матфей | Matthew |
| Марк | Mark |
| Лука | Luke |
| Иоанн | John |
| Деяния | Acts |
| Римлянам | Romans |
| 1 Коринфянам | 1 Corinthians |
| 2 Коринфянам | 2 Corinthians |
| Галатам | Galatians |
| Ефесянам | Ephesians |
| Филиппийцам | Philippians |
| Колоссянам | Colossians |
| 1 Фессалоникийцам | 1 Thessalonians |
| 2 Фессалоникийцам | 2 Thessalonians |
| 1 Тимофею | 1 Timothy |
| 2 Тимофею | 2 Timothy |
| Титу | Titus |
| Филимону | Philemon |
| Евреям | Hebrews |
| Иаков | James |
| 1 Петра | 1 Peter |
| 2 Петра | 2 Peter |
| 1 Иоанна | 1 John |
| 2 Иоанна | 2 John |
| 3 Иоанна | 3 John |
| Иуда | Jude |
| Откровение | Revelation |
В rbo книга называется «Софония», в rst —
«Софоний». Остальные русские названия в этих файлах совпадают.
Эндпоинты
JSON в примерах ниже отформатирован с отступами для читаемости; сервер возвращает компактный JSON.
GET / — один стих
Возвращает текст одного стиха.
| Параметр | Обязателен | По умолчанию | Описание |
|---|---|---|---|
translation |
нет | rbo |
Код перевода: rbo, rst или nasb. |
book |
нет | Иоанн (для nasb — John) |
Название книги. |
chapter |
нет | 1 |
Номер главы. |
verse |
нет | 1 |
Номер стиха. |
Пример:
curl 'https://api.aibible.ru/?translation=nasb&book=John&chapter=3&verse=16'
Ответ:
{
"info": "John 3:16",
"text": "“For God so loved the world, that He gave His only Son, so that everyone who believes in Him will not perish, but have eternal life.",
"translation": "nasb"
}
Поля ответа:
text— текст стиха; переводы строк заменены пробелами.info— каноническое название книги, глава и стих.translation— код перевода.
Название книги сравнивается без учёта регистра. Первая буква может быть
строчной, а цифру в начале названия можно писать слитно:
1коринфянам будет распознано как 1 Коринфянам.
GET /search — поиск по тексту
Ищет подстроку во всех стихах выбранного перевода. Поиск не учитывает регистр. Если книга не указана, поиск идёт по всей Библии.
| Параметр | Обязателен | По умолчанию | Описание |
|---|---|---|---|
query |
да | — | Строка поиска длиной от 3 до 100 символов. |
translation |
нет | rbo |
Код перевода. |
book |
нет | все книги | Ограничить поиск одной книгой. |
Пример с русским текстом:
curl -G 'https://api.aibible.ru/search' \
--data-urlencode 'query=начале' \
--data-urlencode 'book=Бытие'
Ответ:
{
"count": 1,
"query": "начале",
"results": [
{
"info": "Бытие 1:1",
"text": "В начале сотворил Бог небо и землю.",
"translation": "rbo"
}
]
}
Поля ответа:
results— массив найденных стихов.count— количество найденных стихов.query— исходная строка поиска.
Каждый элемент results содержит те же поля, что и ответ
GET /: text, info, translation.
Если ничего не найдено, возвращается 200 OK с пустым массивом
и count: 0. Ограничения на количество результатов и
постраничной выдачи нет.
Ошибки
| Код | Тело ответа | Когда возникает |
|---|---|---|
400 |
{"error": "Query is empty"} |
Параметр query не задан или пуст. |
400 |
{"error": "Query is too short"} |
В query меньше 3 символов. |
400 |
{"error": "Query is too long"} |
В query больше 100 символов. |
404 |
{"error": "Unknown translation"} |
Неизвестный код перевода в GET /. |
404 |
{"error": "Unknown book"} |
Книга не найдена. |
404 |
{"error": "Unknown chapter"} |
Глава не найдена. |
404 |
{"error": "Unknown verse"} |
Стих не найден. |
404 |
404 Not Found (text/plain) |
Неизвестный путь. |
Пример ошибки:
curl 'https://api.aibible.ru/search?query=ab'
{"error": "Query is too short"}