swsnu / swppfall2020

28 stars 17 forks source link

[HW4] KeyError가 발생하는 경우 #174

Open cheezafizz opened 4 years ago

cheezafizz commented 4 years ago

채점시 KeyError가 발생하여 400 Response를 해야하는 상황도 고려하는 지 궁금합니다.

과제 README.md 상 400 Response에 대한 설명이 되어 있긴 하지만 이후 이어지는 반드시 고려해야할 response에는 해당 내용이 쓰여있지 않아 어떻게 해야할지 조금 헷갈려서 질문드립니다.

kooyunmo commented 4 years ago

161 에 제가 답변한 내용을 참고해 주시면 되겠습니다! 400 bad request에 대해서는 고려하지 않으셔도 됩니다.

bzs5919 commented 4 years ago

Among these global specifications, the prior specification has the higher priority. For example, if someone requests for a non-existing article without signing in, response with 401 instead of 404. 이어지는 질문이라 여기에 올립니다. 위의 hw spec 내용에 일관되게 400이 404보다 우선순위가 높게 프로그램을 작성했는데 괜찮을까요?

cheezafizz commented 4 years ago

@kooyunmo 확실히 #161 에서의 답변을 보면 @bzs5919 님이 인용하신 부분과 상충하는 부분이 있는 것 같은데 조교님의 설명이 필요한 부분인 것 같네요.

kooyunmo commented 4 years ago

For example, if someone requests for a non-existing article without signing in, response with 401 instead of 404.

@cheezafizz 이 내용은 유저의 authentication이 실패한 경우에 401을 리턴하라는 의미로 JSONDecodeError, KeyError에 해당하는 400 response와는 관련이 없습니다.

@bzs5919

161 에서 말씀드린 것과 같이 404의 우선순위가 400의 우선 순위 보다 높아야 합니다. 다만 이번 과제에서 KeyError와 관련한 부분은 테스트하지 않을 예정입니다.

  1. 먼저 해당 article (혹은 comment)이 있는지 찾는다 --> 없으면 404
  2. article (혹은 comment)이 있으면 PUT이나 POST에 대해서 request content를 가져오고, 필요한 key로부터 value를 읽는다 --> 이 과정에서 문제가 있으면 400
cheezafizz commented 4 years ago

감사합니다.