전체보기
![9. 미니터(Miniter) API 개발 엔드포인트와 HTTP 요청 총 정리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYaosX%2FbtrqiqGK3zE%2FUNI49Y5mkTVBJgErv78rJ1%2Fimg.png)
9. 미니터(Miniter) API 개발 엔드포인트와 HTTP 요청 총 정리
● 모듈 활성화와 변수, 핑 퐁 엔드포인트 from flask import Flask, jsonify, request from flask.json import JSONEncoder class CustomJSONEncoder(JSONEncoder): def default(self, obj): if isinstance(obj, set): return list(obj) return JSONEncoder.default(self, obj) app = Flask(__name__) app.id_count = 1 app.users = {} app.tweets = [] app.json_encoder = CustomJSONEncoder @app.route("/ping", methods=['GET']) def ping():..
![Ubuntu terminal quote, dquote 에서 빠져 나가기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRiAeX%2FbtrqnklxR3R%2FZtC2G7OrOOB7k78MuD3RO0%2Fimg.png)
Ubuntu terminal quote, dquote 에서 빠져 나가기
이에 대한 해답을 stack overflow에서 찾았다. CTRL + G 를 누르면 잘 못 입력되기 전의 상태로 되돌린다고 한다. 즉 무한 dquote에서 탈출한다는 뜻이다. 그런데 나는 분명히 " " (Double quote) 큰 따옴표를 썼음에도 불구하고 dquote 에 걸렸다. 왜 그런지는 몰라도 적어도 해결책은 찾아야 한다는 일념으로 스크롤을 더 아래로 내려 보았는데 역시 해답이 있었다. 답변에 따르면 !를 쓸경우 큰 따옴표 대신 작은 따옴표 (Single quote) 를 쓰라고 한다.
![urls must start with a leading slash](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3V1B9%2FbtrqmpgwTM1%2FdIKAPo2Mvc0TLF2x2Ie0sK%2Fimg.png)
urls must start with a leading slash
이번에는 urls must start with a leading slash 라는 에러에 봉착하였다. urls 는 선행 슬래쉬로 시작해야 한다는데 그 말인즉슨 슬래쉬를 빼먹었다는 이야기 이므로 코드를 살펴보았다. 확실히 / 를 빼먹었다 이런 코드 누락으로 인한 실수를 최대한 줄여 나가는 것도 실력이라 생각되므로 빠르면서도 꼼꼼하게 코드를 작성하도록 노력해야겠다.
![8. 미니터(Miniter) API 개발 (타임라인)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdggWRJ%2FbtrqiqzTlCV%2F5a6ibK4Cb3zKQrq3hgpEc0%2Fimg.png)
8. 미니터(Miniter) API 개발 (타임라인)
이번에 구현할 기능은 타임라인 기능이다. 타임라인은 팔로우한 사용자의 글 목록을 보여주는 기능이다. 코드는 다음과 같다. @app.route("timeline/", methods=['GET']) def timeline(user_id): if user_id not in app.users: return '사용자가 존재하지 않습니다.', 400 follow_list = app.users[user_id].get('follow', set()) follow_list.add(user_id) timeline = [tweet for tweet in app.tweets if tweet['user_id'] in follow_list] return jsonify({'user_id' : user_id, 'timeline' : ..