API방식으로 글 쓰는 방법을 문의드립니다.
본문
python 기반의 그누보드가 나온 것을 최근에 알게되어 설치하고 공부해보는 중입니다.
서버가 fastapi로 구성되어 있고 내부에 scheduler도 있어서, scrapbot이라는 계정을 하나 만들고 아침마다 스크랩한 정보를 게시물로 작성해서 출근길에 보려고 합니다.
기존에 만들어져있는 delete_old_records를 참고해서, common.py에 스크랩하는 함수를 만들어서 scheduler에 등록해 놓는 것까지는 해놓았는데, 스크랩한 정보를 requests.post로 아래의 글쓰기API를 호출할 때 write_update 인자들을 채우는 부분에서 막혀서 도움을 요청드립니다.
글쓰기API
@router.post(
"/write_update/{bo_table}",
dependencies=[Depends(validate_token), Depends(check_group_access)])
async def write_update(
request: Request,
db: db_session,
board: Annotated[Board, Depends(get_board)],
recaptcha_response: str = Form("", alias="g-recaptcha-response"),
bo_table: str = Path(...),
wr_id: str = Form(None),
parent_id: int = Form(None),
uid: str = Form(None),
notice: bool = Form(False),
html: str = Form(""),
mail: str = Form(""),
secret: str = Form(""),
form_data: WriteForm = Depends(),
files: List[UploadFile] = File(None, alias="bf_file[]"),
file_content: list = Form(None, alias="bf_content[]"),
file_dels: list = Form(None, alias="bf_file_del[]"),
):
답변 1
async def scrap_and_write(url: str): # 스크랩 정보 가져오기 scraped_info = scrap_function(url) # API
API 인자 매핑
scraped_info = {
"title": "스크랩된 제목",
"content": "스크랩된 내용",
"author": "스크랩된 작성자",
"url": "스크랩된 URL",
"published_date": "스크랩된 게시 날짜",
# ... 추가 정보
}
write_update
API 호출 코드
async def scrap_and_write(url: str):
# 스크랩 정보 가져오기
scraped_info = scrap_function(url)
# API