대기중인 주문을 받기 위해 외부 API를 사용하고 있습니다. 보류중인 주문을 PostgreSQL에 저장하는 GET 요청 메소드를 작성했습니다.레일 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