API 버그 의심 - "공개 사용자 목록 가져오기" 엔드포인트

“공개 사용자 목록 가져오기” 엔드포인트로 테스트를 하던 중, 나머지 사용자를 가져오기 위해 페이지네이션이 필요했습니다. 다음 페이지의 경로를 가져오기 위해 load_more_directory_items 필드를 사용했는데, 해당 경로는 /directory_items?order=days_visited&page=1&period=all로 표시되어 있었습니다.

하지만 이 경로를 사용하면 사용자 정보가 포함된 올바른 API 응답을 받지 못하고 HTML만 반환되었습니다. 원래 엔드포인트와 비교해 보니 directory_items 뒤에 .json이 누락되어 있는 것 같습니다. 다음 페이지 경로에 .json을 추가하니 정상적으로 동작했습니다. 이것이 API 버그인가요?

1개의 좋아요

404 not found HTML 페이지를 받으셨을 가능성이 높습니다.

API를 사용할 때는 대부분의 엔드포인트가 기본적으로 JSON을 반환하지만 일부는 HTML을 반환하므로, 모든 API 요청에 반드시 .json을 사용해야 합니다. 이 라우트는 기본적으로 .json을 처리하지 않는 것 같아서, .json이 전달되지 않았을 때 라우트를 찾을 수 없었던 것으로 보입니다.

이러한 오류 페이지를 받지 않으려면 .json을 명시적으로 지정하는 것이 좋습니다. 하지만 API 호출을 감지할 때, 200 상태 코드와 읽을 수 없는 HTML 본문 대신 실제 404 HTTP 응답을 반환해야 하는지 궁금합니다 :thinking:?

5개의 좋아요

네, 초기 API 호출에서 엔드포인트에 .json을 지정하고 있습니다. 제가 지적한 문제는 응답에서 meta 하위의 load_more_directory_items에 .json이 지정되어 있지 않다는 점입니다.

"meta": {
        "last_updated_at": "2020-08-11T11:40:43.000Z",
        "total_rows_directory_items": 1132,
        "load_more_directory_items": "/directory_items?order=days_visited&page=2&period=all"
    }

현재 값은 /directory_items?order=days_visited&page=2&period=all입니다.

하지만 /directory_items.json?order=days_visited&page=2&period=all이어야 합니다.

.json이 포함되어 있지 않아서 페이지를 넘길 때마다 해당 문자열을 수동으로 수정해야 합니다.

1개의 좋아요

아, 이제 무슨 뜻인지 알겠어요. 바로 수정할 수 있을 것 같아요. 오늘 처리하겠습니다.

2개의 좋아요

이 문제를 수정하여 커밋했습니다:

git pull을 실행하고 재빌드하면 인스턴스에서 사용할 수 있어야 합니다. 이 문제를 알려주셔서 감사합니다 :slight_smile:.

3개의 좋아요