私は保留中の注文を受け取るために外部APIを使っています。保留中の注文をPostgreSQLに保存するGETリクエストメソッドを作成しました。Rails GETリクエストが以前にダウンロードしたデータをプルダウンする
問題は、各GETリクエスト中に、保留中のすべての注文(古いものと新しいもの)が再度ダウンロードされたために重複を作成しているという問題です。
私のGETリクエスト中に方法がありますか?以前にダウンロードした保留中の注文のデータベースをチェックして無視し、新しく作成された保留中の注文のみをダウンロードできますか?
REST宝石は、私が使用している:
残り、クライアント
をここに私の作業GETリクエストがあります:
def download_pf_orders
download_count = 0
uri = "#{PF_TEST_PENDING_API_URL}"
rest_resource = RestClient::Resource.new(uri, PF_TEST_USERNAME, PF_TEST_PASSWORD)
begin
response = rest_resource.get(accept: 'application/json')
json = JSON.parse(response)
json.each do |data|
sequence = data['SequenceNumber']
puts "### Last Sequence Number: #{sequence}"
PfOrder.create(
sequence_number: data['SequenceNumber'],
message_guid: data['MessageGuid'],
hl7_document: data['Hl7Document']
)
download_count += 1
end
rescue => e
puts "### Status Code: #{e.response.code} ###"
end
puts "### Downloaded Orders: #{download_count} ###"
end
私は別の方法を持っているPOST要求を送ることができます。重複した注文をダウンロードする必要はありません。これは、POSTリクエストが失敗した場合にのみ発生します。私のGETリクエストでは、JSONデータをデータベースに対してチェックし、すでに存在する場合はそれをスキップする安全性を追加したいと考えています。私は、シーケンス番号またはmessage_guidを使用することができます。 – bradbajuz