2011-02-08 6 views
3

저는 SendGrid를 사용하여 전자 메일을 보낼 Sinatra 응용 프로그램을 작성하고 있습니다. 그들은 이메일을 보내기위한 REST API를 제공하며, 나는 그 API에 대한 호출을하고 응답을 얻는 가장 좋은 방법을 찾고 싶었다.전자 메일을 보내고 응답 받기 위해 HTTP 호출을해야합니다.

호출의 형식은 다음과 같습니다

https://sendgrid.com/api/[email protected]&api_key=secureSecret&[email protected]&toname=Destination&subject=Example%20Subject&text=testingtextbody&[email protected] 

응답은 내가 실패/성공을 확인하기 위해 구문 분석 할 필요가 XML에 있습니다. 추가 정보 : http://sendgrid.com/documentation/ApiWebMail

전화를 걸고 파싱을 수행하는 가장 좋은 방법은 무엇입니까?

답변

5

Ruby의 Net :: HTTP 라이브러리는 많은 기능을 갖추고 있지만 HTTPClient을 좋아합니다. simplified commands을 사용하고 있습니다. 내장 된 open-uri은 많이 들지 않아도된다면 매우 편리합니다.

HTML 및 XML 구문 분석의 경우 실제로는 Nokogiri을 이길 수 없습니다.

Ruby의 URI 파서가 URI 내장형이지만, 특히 쿼리 매개 변수가 많이 혼란스러워지면 Addressable을 더 좋아합니다. 쿼리 매개 변수를 조작하려면 쉽게 다음 주소 지정 : URI가 편리하게

require 'addressable/uri' 
require 'nokogiri' 
require 'open-uri' 

:

url = 'https://sendgrid.com/api/[email protected]&api_key=secureSecret&[email protected]&toname=Destination&subject=Example%20Subject&text=testingtextbody&[email protected]' 
uri = Addressable::URI.parse(url) 
uri.query_values # => {"api_user"=>"[email protected]", "api_key"=>"secureSecret", "to"=>"[email protected]", "toname"=>"Destination", "subject"=>"Example Subject", "text"=>"testingtextbody", "from"=>"[email protected]"} 

당신은 그 해시를 할당 할 수

여기

몇 가지 다양한 보석을 사용하는 샘플입니다 변수에 값을 수정 한 다음 uri.query_values=을 사용하여 값을 다시 지정하십시오.

HTTPClient보다 간단한 인터페이스를 원한다면 Ruby의 Open-URI는 그다지 쉽지 않습니다.이 XML로 구문 분석 노코 기리에 결과를 반환 URL에 대한 요청을 보낼 것입니다 :

returned_xml = '<result> 
    <message>success</message> 
</result>' 
다음은 XML 응답은 '당신이 링크 된 사이트에 따르면이처럼 보이도록 sposed되어 반환
doc = Nokogiri::XML(open(uri.to_s)) 

그래서 우리는 구문 분석하면 그 :

:

doc = Nokogiri::XML(returned_xml) 

우리는 쉽게 응답에서 얻을 수 있습니다

거기에 계정이 없기 때문에 전체 왕복 여행의 예를 표시 할 수는 없지만 그럴 필요는 있습니다.

0

답변은 정말로 당신에 따라 다릅니다. 어떤 언어를 사용하고 싶습니까? 어떤 프레임 워크 (있는 경우)가 귀하에게 호소합니까? 이 작업을 일회용으로 수행하려면 명령 줄에서 CURL을 사용하여 전체 작업을 수행 할 수 있습니다. 또는 Perl 스크립트에서 CURL을 래핑 할 수 있습니다. 또는 Python이나 Ruby를 작성할 수 있습니다. 또는 Java 또는 .Net을 작성할 수 있습니다.

또는 적절한 쿼리 문자열 매개 변수를 입력 한 후 브라우저에서 해당 URL을 누르기 만하면됩니다.

모든 주요 언어에는 많은 XML 파서가 있으므로 모든 부분이 잘되어 있어야합니다.

+0

죄송합니다. 앱을 제작하고 있습니다. 추가 정보가있는 게시물을 업데이트했습니다. –

관련 문제