247 lines
6.8 KiB
YAML
247 lines
6.8 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: Bible API
|
|
description: API for accessing and searching biblical information.
|
|
version: 1.0.0
|
|
|
|
servers:
|
|
- url: https://api.1611.social
|
|
|
|
# Add security definitions for authorization tokens
|
|
security:
|
|
- bearerAuth:
|
|
type: apiKey
|
|
name: Authorization
|
|
in: header
|
|
|
|
paths:
|
|
/verses:
|
|
get:
|
|
summary: Get verses by reference.
|
|
description: Retrieve a list of verses by providing a verse reference or range.
|
|
parameters:
|
|
- name: verse_reference
|
|
in: query
|
|
description: The verse reference, e.g., "1cor5:1,2cor1:2-5".
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of verses in JSON format.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
book:
|
|
type: string
|
|
chapter:
|
|
type: integer
|
|
verse:
|
|
type: integer
|
|
text:
|
|
type: string
|
|
post:
|
|
summary: Submit sermon information.
|
|
description: Submit details of a sermon for review. Requires authorization.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: Authorization
|
|
in: header
|
|
description: Bearer token for authorization.
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
title:
|
|
type: string
|
|
url:
|
|
type: string
|
|
preacher:
|
|
type: string
|
|
date_preached:
|
|
type: string
|
|
format: date
|
|
church_name:
|
|
type: string
|
|
denomination:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: Sermon submitted successfully.
|
|
content: {}
|
|
'401':
|
|
description: Unauthorized access.
|
|
|
|
/verses/{verse_id}:
|
|
get:
|
|
summary: Get verse by internal ID.
|
|
description: Retrieve a specific verse using its internal ID.
|
|
parameters:
|
|
- name: verse_id
|
|
in: path
|
|
description: The internal ID of the verse.
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Verse details in JSON format.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
book:
|
|
type: string
|
|
chapter:
|
|
type: integer
|
|
verse:
|
|
type: integer
|
|
text:
|
|
type: string
|
|
|
|
/search:
|
|
get:
|
|
summary: Search verses by keyword.
|
|
description: Return a list of verses matching a keyword search.
|
|
parameters:
|
|
- name: query
|
|
in: query
|
|
description: The keyword to search for.
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of verses in JSON format.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
book:
|
|
type: string
|
|
chapter:
|
|
type: integer
|
|
verse:
|
|
type: integer
|
|
text:
|
|
type: string
|
|
|
|
/search/semantic:
|
|
get:
|
|
summary: Search verses using semantic search.
|
|
description: Return a list of verses "most like" a query text. Requires authorization.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: Authorization
|
|
in: header
|
|
description: Bearer token for authorization.
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: query
|
|
in: query
|
|
description: The query text.
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of verses in JSON format.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
book:
|
|
type: string
|
|
chapter:
|
|
type: integer
|
|
verse:
|
|
type: integer
|
|
text:
|
|
type: string
|
|
|
|
/verses/{verse_reference}/like:
|
|
get:
|
|
summary: Find similar verses.
|
|
description: Return a list of verses similar to the provided reference.
|
|
parameters:
|
|
- name: verse_reference
|
|
in: path
|
|
description: The verse reference for comparison.
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of similar verses in JSON format.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
book:
|
|
type: string
|
|
chapter:
|
|
type: integer
|
|
verse:
|
|
type: integer
|
|
text:
|
|
type: string
|
|
similarity_score:
|
|
type: number
|
|
description: Measure of similarity with the reference verse.
|
|
|
|
/sermons:
|
|
get:
|
|
summary: Get sermons referencing a verse.
|
|
description: Retrieve sermons containing a specific verse reference.
|
|
parameters:
|
|
- name: verse_reference
|
|
in: query
|
|
description: The verse reference to search for.
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of sermons in JSON format.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
title:
|
|
type: string
|
|
url:
|
|
type: string
|
|
preacher:
|
|
type: string
|
|
date_preached:
|
|
type: string
|
|
format: date
|
|
church_name:
|
|
type: string
|
|
denomination:
|
|
type: string |