feat(api): add post viewing and creation
This commit is contained in:
parent
d466e16882
commit
c2f95a0f2d
0
backend/README.md
Normal file
0
backend/README.md
Normal file
51
backend/forum.py
Normal file
51
backend/forum.py
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
from fastapi import Body, FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
class Post:
|
||||||
|
id: int
|
||||||
|
title: str
|
||||||
|
content: str
|
||||||
|
|
||||||
|
def __init__(self, id, title, content):
|
||||||
|
self.id = id
|
||||||
|
self.title = title
|
||||||
|
self.content = content
|
||||||
|
|
||||||
|
|
||||||
|
class PostCreate(BaseModel):
|
||||||
|
title: str
|
||||||
|
content: str
|
||||||
|
|
||||||
|
|
||||||
|
POSTS = [
|
||||||
|
Post(1, 'first post', 'fbpb'),
|
||||||
|
Post(2, 'second_post', 'second post bitttttch')
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/")
|
||||||
|
async def home():
|
||||||
|
return POSTS
|
||||||
|
|
||||||
|
|
||||||
|
@app.post("/post")
|
||||||
|
async def create_post(data: PostCreate):
|
||||||
|
post = Post(
|
||||||
|
id=len(POSTS) + 1,
|
||||||
|
title=data.title,
|
||||||
|
content=data.content
|
||||||
|
)
|
||||||
|
POSTS.append(post)
|
||||||
|
return POSTS[-1]
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/{post_id}")
|
||||||
|
async def get_post(post_id: int):
|
||||||
|
for post in POSTS:
|
||||||
|
if post.get('post_id') == post_id:
|
||||||
|
return post
|
||||||
|
|
||||||
|
return {}
|
2
backend/requirements.txt
Normal file
2
backend/requirements.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fastapi
|
||||||
|
uvicorn[standard]
|
Loading…
Reference in New Issue
Block a user