Rubyで外部APIを使用し、集荷状況を表示したい。
前提・実現したいこと
Rubyで外部APIを使用し、配達の集荷状況が確認出来るWebアプリを作っています。
APIを連携出来たものの、Viewだと無効なAPI
と表示されてしまい、どこをどのように直したら良いのか分かりません。コードの編集方法および外部APIの実装方法が誤っている場合、そちらを教えていただきたいです。
- 使用している外部API:Tracking more
- コードを書いた上で参考にしたページ
発生している問題・エラーメッセージ
該当のソースコード
- collecting-status_controller.rb
```
class CollectingStatusController < ActionController::Base
class Trackingmore
require 'uri'
require 'net/http'
require 'net/https'
require 'json'
def tracker(url,postData,method)
headers ={'Content-Type' =>'application/json','Trackingmore-Api-Key':'my api key'}
if postData.empty?
@toSend =""
else
@toSend =postData.to_json
end
uri = URI.parse(url)
https = Net::HTTP.new(uri.host,uri.port)
if method =="GET"
req = Net::HTTP::Get.new(uri.path,headers)
elsif method =="POST"
req = Net::HTTP::Post.new(uri.path,headers)
elsif method =="PUT"
req = Net::HTTP::Put.new(uri.path,headers)
elsif method =="DELETE"
req = Net::HTTP::Delete.new(uri.path,headers)
else
puts "parameter method is wrong!"
end
req.body = "#{@toSend}"
res = https.request(req)
return res
end
end
end
```
- index.html.erb
```
<!-- [1] classとactionを変更します -->
<form class="index" action="https://api.trackingmore.com/v2" method="post">
<div class="container">
<div class="flex space-between">
<div class="articlesNews-leftContent">
<div class="article-MainBlock">
<form action="/connpass_clients" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓">
<div class="flex">
<div class="p-t-b-5">伝票番号</div>
<div><input type="text" name="form_words" id="form_words" placeholder="東京都 プログラミング"></div>
</div>
<div class="text-10">スペース カンマで複数検索可</div>
<div class="flex m-t-b-30">
<div>配達日時</div>
<div><select id="start_date_year" name="start_date[year]">
<option value="2017">2017</option>
<option value="2018" selected="selected">2018</option>
<option value="2019">2019</option>
</select>
<select id="start_date_month" name="start_date[month]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9" selected="selected">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<input type="hidden" id="start_date_day" name="start_date[day]" value="1">
</div>
<div>~</div>
<div><select id="end_date_year" name="end_date[year]">
<option value="2017">2017</option>
<option value="2018" selected="selected">2018</option>
<option value="2019">2019</option>
</select>
<select id="end_date_month" name="end_date[month]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9" selected="selected">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<input type="hidden" id="end_date_day" name="end_date[day]" value="1">
</div>
</div><input type="submit" name="commit" value="Search">
```
補足情報(FW/ツールのバージョンなど)
ruby ver
2.3.3p222 (2016-11-21 revision 56859)
Rails ver
Rails 5.1.6