final version
This commit is contained in:
parent
9b8171db5b
commit
17ee42c8ea
|
|
@ -11,6 +11,9 @@
|
||||||
<orderEntry type="jdk" jdkName="Python 3.12 (announcementService) (2)" jdkType="Python SDK" />
|
<orderEntry type="jdk" jdkName="Python 3.12 (announcementService) (2)" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="PackageRequirementsSettings">
|
||||||
|
<option name="versionSpecifier" value="Strong equality (==x.y.z)" />
|
||||||
|
</component>
|
||||||
<component name="TemplatesService">
|
<component name="TemplatesService">
|
||||||
<option name="TEMPLATE_CONFIGURATION" value="Jinja2" />
|
<option name="TEMPLATE_CONFIGURATION" value="Jinja2" />
|
||||||
<option name="TEMPLATE_FOLDERS">
|
<option name="TEMPLATE_FOLDERS">
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
||||||
<data-source source="LOCAL" name="@localhost" uuid="5bd2f97d-04d9-4780-924c-77d00c802fc5">
|
<data-source source="LOCAL" name="@localhost" uuid="5bd2f97d-04d9-4780-924c-77d00c802fc5">
|
||||||
<driver-ref>mongo</driver-ref>
|
<driver-ref>mongo.4</driver-ref>
|
||||||
<synchronize>true</synchronize>
|
<synchronize>true</synchronize>
|
||||||
<jdbc-driver>com.dbschema.MongoJdbcDriver</jdbc-driver>
|
<jdbc-driver>com.dbschema.MongoJdbcDriver</jdbc-driver>
|
||||||
<jdbc-url>mongodb://localhost:27017</jdbc-url>
|
<jdbc-url>mongodb://localhost:27017</jdbc-url>
|
||||||
|
|
|
||||||
1
app.py
1
app.py
|
|
@ -1,4 +1,5 @@
|
||||||
from flask import Flask, jsonify, request
|
from flask import Flask, jsonify, request
|
||||||
|
from flask_cors import cross_origin
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,21 +2,33 @@
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import connexion
|
import connexion
|
||||||
|
from connexion.middleware import MiddlewarePosition
|
||||||
|
from flask import Flask
|
||||||
|
|
||||||
from openapi_server import encoder
|
from openapi_server import encoder
|
||||||
from pymongo import MongoClient
|
from pymongo import MongoClient
|
||||||
|
from starlette.middleware.cors import CORSMiddleware
|
||||||
|
|
||||||
|
|
||||||
client = MongoClient(host='mongodb://host.docker.internal:27017/')
|
client = MongoClient(host='mongodb://host.docker.internal:27017/')
|
||||||
db = client["MainDB"]
|
db = client["MainDB"]
|
||||||
collection = db['patch_notes']
|
collection = db['patch_notes']
|
||||||
|
|
||||||
app = connexion.App(__name__, specification_dir='./openapi/')
|
app = connexion.FlaskApp(__name__, specification_dir='./openapi/')
|
||||||
app.app.logger.setLevel(logging.DEBUG)
|
|
||||||
app.app.json_encoder = encoder.JSONEncoder
|
app.add_middleware(
|
||||||
|
CORSMiddleware,
|
||||||
|
position=MiddlewarePosition.BEFORE_EXCEPTION,
|
||||||
|
allow_origins=["*"],
|
||||||
|
allow_credentials=True,
|
||||||
|
allow_methods=["*"],
|
||||||
|
allow_headers=["*"],
|
||||||
|
)
|
||||||
|
|
||||||
app.add_api('openapi.yaml',
|
app.add_api('openapi.yaml',
|
||||||
base_path='/api',
|
base_path='/api',
|
||||||
arguments={'title': 'announcementService'},
|
arguments={'title': 'announcementService'},
|
||||||
pythonic_params=True)
|
pythonic_params=True)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(port=8080, host='0.0.0.0')
|
app.run(port=8080, host='0.0.0.0')
|
||||||
|
|
|
||||||
|
|
@ -213,3 +213,12 @@ def patchnotes_get(): # noqa: E501
|
||||||
mimetype='application/json',
|
mimetype='application/json',
|
||||||
status=200,
|
status=200,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def cors_options_handler():
|
||||||
|
from flask import make_response
|
||||||
|
response = make_response('')
|
||||||
|
response.headers['Access-Control-Allow-Origin'] = '*'
|
||||||
|
response.headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, DELETE, OPTIONS'
|
||||||
|
response.headers['Access-Control-Allow-Headers'] = 'Content-Type, Authorization'
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,5 @@ connexion[swagger-ui, flask] >= 3.2.0
|
||||||
werkzeug == 3.1.3
|
werkzeug == 3.1.3
|
||||||
swagger-ui-bundle >= 0.0.2
|
swagger-ui-bundle >= 0.0.2
|
||||||
uvicorn >= 0.21.1
|
uvicorn >= 0.21.1
|
||||||
typing_extensions~=4.12.2
|
typing_extensions~=4.12.2
|
||||||
|
flask_cors >= 5.0.1
|
||||||
|
|
@ -10,4 +10,8 @@ connexion[swagger-ui, flask] >= 3.2.0
|
||||||
werkzeug == 3.1.3
|
werkzeug == 3.1.3
|
||||||
swagger-ui-bundle >= 0.0.2
|
swagger-ui-bundle >= 0.0.2
|
||||||
uvicorn >= 0.21.1
|
uvicorn >= 0.21.1
|
||||||
typing_extensions~=4.12.2
|
typing_extensions~=4.12.2
|
||||||
|
flask_cors >= 5.0.1
|
||||||
|
typing_extensions==4.12.2
|
||||||
|
Flask-Testing==0.8.1
|
||||||
|
starlette==0.46.1
|
||||||
Loading…
Reference in New Issue