2009-03-23 3 views
3

다양한 형식의 HTTP 요청에 응답하는 RESTish 서버 프로젝트에서 작업하고 있습니다. 이를 통해 사용자가 직면 한 응용 프로그램을 작성하고 그 당시에 가장 편리한 것으로 보이는 형식을 검색 할 수 있습니다. 예를 들어, 로그인 한 사용자가있는 경우, 우리는 보낼 수 있습니다 볼 수 있습니다 : 당신이 상상할 수 있듯이AMF를 웹 서비스에서 "다른 출력 형식"으로 사용할 수 있습니까?

http://serverurl/Authentication?command=whoami&format=xml 

것은, 이것은 (있는 경우) 로그인 한 사용자에 대한 정보가 포함되어 XML을 반환합니다. 우리는 JSON 다시 동일한 정보를 얻을 수 있습니다 :

http://serverurl/Authentication?command=whoami&format=json 

최근에, 우리는 그것을 몇 가지 루비와 파이썬 개발자들과 인기 때문에, YAML에 대한 지원을 추가 논의했습니다. 동시에 우리는 Flex에서 프로토 타입 클라이언트 응용 프로그램을 작성하는 것에 대해 이야기 해 왔습니다. 제 질문에서 알 수 없으면 Flex 개발에 대한 첫 번째 진입이 될 것입니다. 필자는 기존 형식 중 하나를 사용하여 Flex 응용 프로그램과 통신 할 수 있다는 것을 알고 있지만 "우리가 할 수 있기 때문에"이러한 추가 형식에 대한 지원을 추가하기로 결정한 경우 amf를 사용하는 것이 특히 어렵거나 다를 수 있습니다. xml 또는 json을 출력 하시겠습니까?

답변

-2

AMF는 SOAP과 비슷하지만 대상이 다른 RPC (원격 프로 시저 호출) 형식입니다. 프로 시저 호출과 객체간에 근본적인 차이점이 있으므로 AMF는 이 아니며은 다른 출력 형식이 될 수 없습니다.

아마도 AMF는 REST API를 사용하여 Flex를 대상으로하는 출력 형식이 아니라 "Flex Remoting"이라고 생각해야합니다.

비유를 들으려면 SOAP 또는 XMLRPC를 REST API의 다른 출력 형식으로 생각하십니까?

2

AMF는 Action Message Format이며 매우 간단한 바이너리 형식으로 데이터를 인코딩하는 단순한 방법입니다. AMF는 엄격한 의미에서 RPC에 묶여 있지 않습니다. Flex (Consumer/Producer)에서 사용할 수있는 메시징 기능은 AMF를 사용하여 모든 메시지에 대한 데이터를 인코딩합니다.이 메시지는 RPC가 아닙니다.

질문으로 돌아 가기 : 응용 프로그램을 빌드하는 데 사용하는 서버 측 기술은 무엇입니까? 다양한 플랫폼을위한 AMF 라이브러리는 모두 다양한 품질과 성숙도를 자랑합니다. 이러한 라이브러리의 대부분은 인코딩하려는 오브젝트를 전달하고 REST 엔드 포인트에 연결된 HTTP 요청의 출력 스트림에 쓸 수있는 바이트 배열을 수신하도록 허용해야합니다.

0

그래도 할 수 있지만 자신의 AMF 시리얼 라이저와 디시리얼라이저를 작성해야합니다 (젠드 프레임 워크에서 복사). 아니면 내가 끝내기를 기다릴 수도있다. 나는 그것을 여기에 게시하는 것을 잊지 않으려 고 노력할 것이다.

2

저는 현재 (.Net 플랫폼에서) 제안하는 방식대로 직렬화 형식으로 AMF를 사용하는 플랫폼에서 작업하고 있습니다. 우리가하는 일은 다음과 같습니다 :

  1. 보내려는 페이지를 나타내는 DTO를 만듭니다.
  2. 는이 ByteArray를 만들고 이진 응답 스트림 클라이언트 측에

에이 ByteArray의 버퍼를 쓰기 AMF

  • 에 WriteObject를()
  • 변경 콘텐츠 형식을 사용하여에 DTO를 저장 우리는 바이너리 형식으로 설정된 정규 URLLoader를 사용합니다. loader.data 속성은 ByteArray가 될 것이고 ReadObject를 사용하면 직렬화 된 DTO를 얻을 수 있습니다. [RemoteClass] 메타 데이터와 registerClassAlias를 사용하면 해당 유형이 생깁니다. 그렇지 않으면 일부 동적 속성이있는 일반 객체가 생성됩니다.

    typed DTO 주위를 우회하는 데있어 멋진 점은 일반 XML 또는 JSON 시리얼 라이저를 사용하여 형식 버전 지정을 매우 간단하게 만들 수 있다는 것입니다.

    또한 작성/업데이트를 위해 ByteArrays를 서버에 게시하여 테스트를 실행했으며 정상적으로 작동하는 것 같습니다. 따라서 본질적으로 REST에 AMF를 사용할 수 있습니다.

    가벼운 무게와 복잡한 유형의 직렬화에 매우 견고하기 때문에 서버 간 통신에이 방법을 사용하려고합니다.

  • 관련 문제