Skip to content
Snippets Groups Projects
Commit 680d244a authored by Timofey Arkhangelskiy's avatar Timofey Arkhangelskiy
Browse files

Introduce all necessary paths, parameters and enumerators

parent bd4689ef
No related branches found
No related tags found
No related merge requests found
......@@ -33,6 +33,7 @@ docs/_build
*.rar
*.gz
*.docx
*.pdf
*.min.css.map
*.min.js.map
query_log.txt
\ No newline at end of file
from fastapi import FastAPI, Request
from fastapi import FastAPI, Request, Query
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from fastapi.encoders import jsonable_encoder
from fastapi.responses import JSONResponse
import json
import uvicorn
from enum import Enum
class CorpPlatform(str, Enum):
tsakorpus = 'tsakorpus'
annis = 'annis'
litterae = 'litterae'
class Operation(str, Enum):
explain = 'explain'
searchRetrieve = 'searchRetrieve'
scan = 'scan'
class SRUVersion(str, Enum):
v1_2 = '1.2'
v2_0 = '2.0'
class QueryType(str, Enum):
# Query language (parameter used since SRU 2.0)
fcs = 'fcs'
cql = 'cql' # Contextual Query Language; default
app = FastAPI()
......@@ -17,6 +41,40 @@ def root():
return {"message": "Hello World"}
@app.get('/fcs-endpoint/{platform}/{corpusID}')
def endpoint(
platform: CorpPlatform,
corpusID: str,
operation: Operation = Operation.explain,
version: SRUVersion = SRUVersion.v2_0,
queryType: QueryType = QueryType.fcs,
query: str = '',
xFcsEndpointDescription: str = Query(
default='',
alias='x-fcs-endpoint-description'
),
xFcsContext: str = Query(
default='',
alias='x-fcs-context'
),
xFcsDataviews: str = Query(
default='',
alias='x-fcs-dataviews'
),
xFcsRewritesAllowed: str = Query(
default='',
alias='x-fcs-rewrites-allowed'
)
):
if platform == CorpPlatform.annis:
return {'platform': 'annis', 'operation': operation, 'version': version}
elif platform == CorpPlatform.litterae:
return {'platform': 'litterae', 'operation': operation, 'version': version}
elif platform == CorpPlatform.tsakorpus:
return {'platform': 'tsakorpus', 'operation': operation, 'version': version}
return
if __name__ == '__main__':
uvicorn.run(
'main:app',
......
p. 10: "Send explain request without version and operation parameter" -- but an explain request has to have the operation parameter with 'explain' as its value
p. 14: x-cmd-resource-info parameter present in the query example, but never explained (mentioned in some 2013 slides on FCS; should now probably be x-fcs-endpoint-description)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment