300자 제한 트윗 글 올리기 엔드포인트를 구현하기 위해서는 다음의 요소들을 구현하여야 한다.
- 사용자는 300자를 초과하지 않는 글을 올릴 수 있다.
- 만일 300자를 초과하면 엔드포인트는 400 Bad Request 응답을 보내야 한다.
- 사용자가 300자 이내의 글을 전송하면 엔드포인트는 사용자의 글을 저장하고 있어야 한다. 따라서 타임라인 엔드포인트를 통하여 읽을 수 있도록 해야 한다.
먼저 Tweet 엔드포인트를 호출할 때 전송하는 JSON 데이터는 다음과 같다.
{
"id" : 1,
"tweet : "My First Tweet"
}
엔드포인트를 구현하면 다음과 같다.
app. tweets = []
@app.route("/tweet", methods['POST'])
def tweet():
payload = request.json
user_id = int(payload['id'])
tweet = payload['tweet']
if user_id not in app.users:
return '사용자가 존재하지 않습니다.', 400
if len(tweet) > 300:
return '300자를 초과했습니다.', 400
user_id = int(payload['id'])
app.tweet.append({'user_id': user_id, 'tweet': tweet})
올바르게 작동하는지 확인하기 위해 구현한 엔드포인트를 활성화 후 아래의 명령어로 HTTP 요청을 보내본다.
http -v POST localhost:5000/tweet id=1 tweet="Helloeveryone!"
책에서는 id:1 tweet:"my first tweet" 이라고 적혀있지만 : 입력시 오류를 출력하니 = 를 입력한다. 아무래도 버전 차이로 인한게 아닐까 생각해본다.
'Backend > Flask 개발일지' 카테고리의 다른 글
9. 미니터(Miniter) API 개발 엔드포인트와 HTTP 요청 총 정리 (0) | 2022.01.11 |
---|---|
8. 미니터(Miniter) API 개발 (타임라인) (0) | 2022.01.10 |
5. 미니터(Miniter) API 개발 (회원가입) (0) | 2022.01.03 |
3. 미니콘다 가상 환경 설치와 Flask 설치, ping 엔드 포인트 (0) | 2021.12.31 |
2. Git 관련 터미널 툴 설치(TIG, Diff So Fancy, ZSH, Oh My Zsh) 그리고 E325: ATTENTION 오류 대처 (0) | 2021.12.28 |