LinkdingのAPIを使って登録したBookmarkを取得するようなプログラムを書いています。
そのプログラム自体はそのうち記事にしようと思いますが、今日はその時に起こった事象を記事にしようかと思います。
情報取得できない
まずはプログラム云々の前に、LinkdingAPIを使って情報取得ができるかどうかcurlコマンドを使って確認してみました。
curl -v -H "Authorization: Token a23a8190f25668c8962425ec176031506ad60bcb" "http://192.168.11.11:9090/api/bookmarks"
上記のコマンドを実行したところ、何も取得できない。
おかしい・・・・最近も登録しているし、データがないということはないと思って、-vをつけて詳細を表示してみました。
yatta47@hero-box:~$ curl -v -H "Authorization: Token a23a8190f25668c8962425ec176031506ad60bcb" "http://192.168.11.11:9090/api/bookmarks" * Trying 192.168.11.11:9090... * Connected to 192.168.11.11 (192.168.11.11) port 9090 (#0) > GET /api/bookmarks HTTP/1.1 > Host: 192.168.11.11:9090 > User-Agent: curl/7.81.0 > Accept: */* > Authorization: Token a23a8190f25668c8962425ec176031506ad60bcb > * Mark bundle as not supporting multiuse < HTTP/1.1 301 Moved Permanently < Content-Type: text/html; charset=utf-8 < Location: /api/bookmarks/ < Content-Length: 0 < X-Content-Type-Options: nosniff < Referrer-Policy: same-origin < Cross-Origin-Opener-Policy: same-origin < * Connection #0 to host 192.168.11.11 left intact yatta47@hero-box:~$
301・・・・だと?!なぜかリダイレクトされている・・・・なぜ・・・・
解決
理由はURLの後ろに「/」がないというシンプルなものでした。以下のコマンドラインを実行したところ、ちゃんと取得できました。
curl -v -H "Authorization: Token a23a8190f25668c8962425ec176031506ad60bcb" "http://192.168.11.11:9090/api/bookmarks/"
-L オプションをつけるのでもいいみたい。
まとめ
一文字内だけで・・・と思わなくもないけれど、こういうものだよなーという妙に納得した事案でした。
APIを叩いてみて、取得できない時は
- 詳細を表示してみる
- リダイレクトされていないか疑う
をしてみると解決するかもしれません。
それではまた~。