Begin OpenAPI Specification
This commit is contained in:
@@ -0,0 +1,247 @@
|
||||
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
|
||||
Reference in New Issue
Block a user