POST
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import falcon, json
|
||||
import logging
|
||||
from logging import config
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
@@ -11,20 +12,72 @@ class Message:
|
||||
self.text = text
|
||||
self.created = datetime.now()
|
||||
|
||||
class ChatServert(object):
|
||||
|
||||
def __str__(self):
|
||||
return self.text
|
||||
|
||||
class ChatServer(object):
|
||||
|
||||
def __init__(self):
|
||||
self.lastmessage = 'Chat Server bereit.')
|
||||
self.msglist = {}
|
||||
|
||||
initmsg = Message('system','Chat Server bereit')
|
||||
|
||||
self.addMsg(initmsg)
|
||||
|
||||
def addMsg(self,msg):
|
||||
created = datetime.now()
|
||||
self.msglist[created.strftime('%d.%m.%y %H:%M.%f')] = msg
|
||||
|
||||
def on_get(self,req,resp):
|
||||
pass
|
||||
logging.debug('on_get()')
|
||||
|
||||
logging.debug(f'msglist= {self.msglist}')
|
||||
json_msgs = {}
|
||||
|
||||
for key in self.msglist:
|
||||
text = self.msglist[key].text
|
||||
json_msgs[key] = {
|
||||
'key': key,
|
||||
'user': self.msglist[key].user,
|
||||
'text': text
|
||||
}
|
||||
|
||||
resp.status = falcon.HTTP_OK
|
||||
resp.media = json_msgs
|
||||
|
||||
def on_post(self,req,resp):
|
||||
pass
|
||||
logging.debug('on_post()')
|
||||
|
||||
json_string = req.media
|
||||
|
||||
logging.debug(f'json_string={json_string}')
|
||||
|
||||
msg = Message(json_string['user'],json_string['text'])
|
||||
self.addMsg(msg)
|
||||
|
||||
|
||||
resp.status = falcon.HTTP_OK
|
||||
|
||||
def on_delete(self,req,resp):
|
||||
logging.debug('on_delete()')
|
||||
|
||||
|
||||
def create_chat_resource():
|
||||
chat_endpoint = ChatServer()
|
||||
|
||||
logging.debug(f'endpoint={chat_endpoint}')
|
||||
|
||||
return chat_endpoint
|
||||
|
||||
|
||||
application = falcon.App()
|
||||
|
||||
with open('log_config.json') as file_config:
|
||||
config.dictConfig(json.load(file_config))
|
||||
|
||||
resource = create_chat_resource()
|
||||
application.add_route('/msg', resource)
|
||||
logging.debug('Chat REST Service bereit')
|
||||
|
||||
|
||||
|
@@ -1,11 +1,5 @@
|
||||
{
|
||||
"version":1,
|
||||
"filters": {
|
||||
"drucker":{
|
||||
"()": "__main__.DruckFilter",
|
||||
"params": "noshow"
|
||||
}
|
||||
},
|
||||
"formatters":{
|
||||
"std_out":{
|
||||
"format": "%(asctime)s : %(levelname)s : %(module)s : %(funcName)s : %(lineno)d : (Process Details : (%(process)d, %(processName)s), Thread Details : (%(thread)d, %(threadName)s))\nLog : %(message)s",
|
||||
@@ -16,8 +10,7 @@
|
||||
"console":{
|
||||
"formatter": "std_out",
|
||||
"class": "logging.StreamHandler",
|
||||
"level": "DEBUG",
|
||||
"filters": ["drucker"]
|
||||
"level": "DEBUG"
|
||||
},
|
||||
"file":{
|
||||
"formatter":"std_out",
|
||||
|
@@ -6,4 +6,5 @@ readme = "README.md"
|
||||
requires-python = ">=3.9"
|
||||
dependencies = [
|
||||
"falcon>=4.0.2",
|
||||
"gunicorn>=23.0.0",
|
||||
]
|
||||
|
27
rest_chat_server/uv.lock
generated
27
rest_chat_server/uv.lock
generated
@@ -50,13 +50,38 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/20/e2/ef821224a9ca9d4bb81d6e7ba60c6fbf3eae2e0dc10d806e6ff21b6dfdc5/falcon-4.0.2-py3-none-any.whl", hash = "sha256:077b2abf001940c6128c9b5872ae8147fe13f6ca333f928d8045d7601a5e847e", size = 318356 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gunicorn"
|
||||
version = "23.0.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "packaging" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/34/72/9614c465dc206155d93eff0ca20d42e1e35afc533971379482de953521a4/gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec", size = 375031 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/cb/7d/6dac2a6e1eba33ee43f318edbed4ff29151a49b5d37f080aad1e6469bca4/gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d", size = 85029 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "packaging"
|
||||
version = "25.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rest-chat-server"
|
||||
version = "0.0.1"
|
||||
source = { virtual = "." }
|
||||
dependencies = [
|
||||
{ name = "falcon" },
|
||||
{ name = "gunicorn" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [{ name = "falcon", specifier = ">=4.0.2" }]
|
||||
requires-dist = [
|
||||
{ name = "falcon", specifier = ">=4.0.2" },
|
||||
{ name = "gunicorn", specifier = ">=23.0.0" },
|
||||
]
|
||||
|
Reference in New Issue
Block a user