はじめに
Ruby on Railsをメインに扱うWeb受託開発企業に転職し、約4ヶ月が経過しました。
初心者ながらにプロジェクトにアサインして頂き苦し楽しい毎日を過ごしております。
今回はcurlコマンドによるPOSTリクエストのAPIの実行を自分なりの備忘録として残します。
機会があればGETSリクエストも載せます。
APIとは
「API」とは、「Application Programming Interface」の頭文字です。
食べログなどのサイトでお店の地図がGoogle Mapで表示されていたりします。
私はAPIに対して「外部のアプリケーションの機能を部分的に引っ張ってこれるもの」くらいのイメージを持っていました。
調べたところ説明する際は以下が分かりやすいと感じました。
APIとはソフトウェアやアプリケーションなどの一部を外部に向けて公開することにより、第三者が開発したソフトウェアと機能を共有できるようにしてくれるものです。
curlコマンドとは
cURLとは、主にUNIX系OSでよく利用されるコマンドおよびプログラムの一つで、様々なプロトコル(通信手順)を用いてURLで示されるネットワーク上の場所との間でデータの送受信を行うもの。オープンソースソフトウェアとして公開されている。
よくGithubのリポジトリなどをURL指定してcurlコマンドでダウンロードしたりします。
curlコマンドでREST APIを叩いてみる
ターミナルで以下で実行します。
curl --request POST "実行するAPIのURL" \
--header "Content-Type: application/json" \ < レスポンスフォーマット 今回はjsonを指定
--header "X-SSapi-version: APIのバージョン" \
--data-raw {'
"カラム名": "データ",
"hoge": 1,
"fuga": 2
}'
- 複数のデータを指定する場合は行末に「,」を忘れないようにします。また、最後のデータの行末には不要です。
JSONの型
APIを実行しようとする中でjsonに関するエラーが頻発したため、jsonの型についてまとめます。
String
- nameカラムに型が文字列のhogeが入っている
{ "name": "hoge" }
Integer
- ageカラムに型が数値の26が入っている
{
"age": 12
}
Json Object
- user_infoという名前のJson Objectにuser_idカラム、user_nameカラムが入っている
{
"user_info": {
"user_id": "abcdefg",
"user_name": "hoge fuga"
}
}'
Json List
- color_list配列にa,b,cの3つの要素が入っている
- object list配列にname,ageという名前のjson objectが入っている(配列によるネスト)
{
"color_list": [ "a", "b", "c" ],
"object_list": [
{ "name": "hoge", "age": 13 },
{ "name: "fuga", "age": 12 }
]
}
参考文献
今さら聞けないIT用語:やたらと耳にするけど「API」って何?
cURLとは - IT用語辞典 e-Words
REST API Guide 2. REST API の概要
とほほのWWW入門 JSON入門