본문 바로가기

Programing/OpenSource

[curl] curl -I 는 HTTP HEAD 였다.

Github에서 저장소 목록을 구해올 일이 생겨서 API를 쓰게 되었다.

문제는 기본적으로 30개씩만 가져오도록 pagination이 되어 있었다.


그런데 응답 json에는 추가로 데이터가 있는지, 있다면 가져올 방법에 대해 알려주는 필드가 없었다.

레퍼런스를 몇 번 반복해서 읽고 나서야 왜 없는 줄 알았다.


레퍼런스 문서를 보자

Pagination의 기본



여기에는 curl -I 어쩌구 명령만 나와 있어서 알턱이 없었다.


그렇다면 저 마이너스 I 옵션은 무엇일까?


curl -I

man 명령으로 찾아보았다.

--head 명령과 같다.

음, HTTP HEAD 요청을 보내는 것이었다.


결론

그러니까 동일한 URL에 대해 HTTP HEAD로 요청하면, 컨텐츠 없이 부가 정보(예. 페이지 정보)를 보내주는 것였다.

컨텐츠가 필요할 때 HTTP GET을 하면 되는 것이다.


Slack API에서는???

얼마전에 Slack API를 써야 해서 추가로 기록한다.

Slack API에서는 응답하는 필드에 추가 값이 있는지 플래그와 요청을 할 수 있도록 next_cursor를 응답에 같이 돌려준다.

그럼 has_more가 true일 경우 cursor 인자에 다음 커서 값을 넘기면 다음 오프셋의 데이터를 가져올 수 있게 되어 있다.