2022/11/17 TIL

이성규·2022년 11월 17일
0

팀 프로젝트

주제 : 애플페이 가맹점 공유 플랫폼 서비스

  • 서비스명: 사과찾기(지뢰찾기 게임에서 영감받음)
  • 개요: 애플페이 도입이 얼마 남지 않은 이 시점에 한국에는 NFC 단말기를 사용하는 곳이 제한되어있습니다. 애플페이 사용 가능 여부를 몰라 좌절하지 말고 가맹점 정보를 서로 공유해 편리한 애플페이 생활을 즐겨봅시다.

뒤늦게 프로젝트에 합류하여 개요와 역할분담을 설명을 듣고, 팀원분께 배우며 코드를 작성해 보았다.
내가 할 항목은

method : GET
request : query = {user_id}
response : {
'user_nickname' : 사용자 닉네임(string),
'user_email' : 사용자 이메일(string),
'user_address_district' : 사용자 주소 - 구(string),
'user_post_total_likes' : 사용자 게시물(가맹점)의 총 좋아요 개수(int)
}

를 바탕으로 app.py를 작성하기 시작

#app.py

@app.route('/api/user', methods=['GET'])
def render_user_data_by_id():
    args = request.args
    try:
        user_id = int(args.get('user_id'))
        user_doc = db.jason_dummy_users.find_one({ 'user_id': user_id }, {'_id': False})
        return {'state': 200, 'msg': 'User Data Successfully Fetched!', 'data': user_doc}

    
  • Flask를 처음 사용하는데 팀원분께서 args.get을 사용하셨는데 어디에 사용되는지 모르겠다.
    이것은 쿼리 문자열의 값을 반환하는 데 사용된다는 것을 어딘가에서 본거 같다. (틀릴 수도)
  • 찾아보니 HTTP Request의 query strings에 해당하는 데이터를 python Multidict 오브젝트로 표현한 것이라고 한다. 아직은 어렵다..
# app.py

except TypeError:
        return {'state': 400, 'msg': 'No user_id key provided'}
    except ValueError:
        return {'state': 400, 'msg': 'Invalid Input or No Such User'}

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000,debug=True)
  • API Test Tool로 insomnia를 사용하여 test하는데 위와 같이 TypeError, ValueError이 발생하여 except를 사용하여 예외처리 해주면서 msg를 추가해 줌.

TIL 후기

  • 저번 주에 강의와 책을 보고 공부를 해서 조금은 이해가 되었다 생각했는데, 새로운 팀원과 프로젝트를 실행하는데 이해하기 어려운 점이 대부분이었다. 항해99에서 웹종강의를 들었을 때는 기본 frame이 제공된 상태에서 수정하고, 추가하는 과정을 배우는 방향으로 익숙해져서 그런지 모르겠지만, 어떤 정보를 기반으로 내가 코드를 만들어야 했을 때 어떻게 시작을 해야할지 어디서부터 손을 써야할지 막막했다. 어렵다 어려워~
profile
개발자를 위한 발걸음

0개의 댓글