인트라넷 용으로 아주 간단한 웹 서비스를 만들려고합니다. 이 서비스는 궁극적으로 DB에 대한 인터페이스가되어 회사 내의 다양한 내부 도구가 무엇을하는지 추적 할 수있게 해줍니다. 웹 서비스를 원한다고 생각합니다. 스키마를 알지 않아도 조직 내의 다양한 도구 (및 다른 언어)로 쉽게 DB를 업데이트 할 수 있습니다.WSDL을 사용하여 REST 클라이언트를 생성하는 것이 잘못된 방향입니까?
관련 REST 대 SOAP 질문 중 많은 부분을 이미 읽었습니다. https://stackoverflow.com/search?q=soap+rest을 검색했을 때 발생하지만 내 답변을 찾지 못했습니다.
내 딜레마는 WSDL의 코드 생성 기능을 사용하면서도 REST의 단순성을 원했던 것으로 보입니다. 은 SOAP을 암시하는으로 보입니다. 다양한 내부 도구 (JAVA, Perl, Python, PHP, C++)가이 서비스와 대화 할 수 있다는 것이 가장 중요하며, 이러한 언어에 대한 인터페이스 계층을 수동으로 다시 작성/유지해야 할 때 바보처럼 보일 수 있습니다. WSDL 라우트가 나를 대신 할 것입니다. WS에서 WS를 변경하고 클라이언트 스텁을 다시 생성 한 다음 스텁을 사용하는 코드에 필요한 변경을 수행합니다 (어쨌든 완료해야 할 것입니다).
예를 들어, RESTful 웹 서비스를 사용하는 JAVA로 작성된 도구가 있다고 가정 해보십시오. 도구가 특정 URL을 처리하고, 요청을 실행하고, 응답으로 무언가를 수행하고, 원하는 경우이를 일부 데이터 구조로 변환하는 특정 코드를 도구가 가지고 있다고 상상합니다. 이제 Perl 도구를 사용하여 Perl 도구를 사용한다고 말할 수 있습니다. 같은 것. 이제는 Perl 코드가 필요합니다. 특정 URL에 대한 요청이 응답을 받고, 뭔가를 처리합니다. 각 경우에 따라서 C++과 Python 및 C#에서는 코드를 공유 할 수 없습니다. 결국 나에게서 그 추악함을 많이 숨기는 래퍼 클래스/메소드로 끝날 것이다. 나는 오히려 URL, 인수, 응답 등에 대해 걱정할 필요없이 객체에 캡슐화 된 데이터를 반환하는 클래스에서 함수를 호출하려고합니다. 물론 특정 장소의 코드가 많지는 않지만 시간이 지남에 따라 합산되기 시작합니다. 그것들을 각각의 도구에 곱하십시오. 이제는 서비스에 변경을 가하면 각 CRUD 작업의 URL과 그에 따르는 모든 것을 업데이트해야합니다. WSDL이 당신에게 도움이 될 것이라고 생각합니다. 코드는 단순히 스텁과 상호 작용합니다. 스텁이하는 일은 무엇입니까? URL, 인수, 응답 - WSDL에서 스텁을 다시 생성하면 변경됩니다. 이 프로세스로 인해 코드가 손상되는 경우에도 그렇지만 적어도 요청을 작성하고 응답을 다루는 세부 사항을 다루는 모든 코드를 업데이트 할 필요는 없습니다. 이것은 정말로 문제가 아닌가? 아마 내가해야 할 일은 단지 서비스와 소수의 고객을 만들고 내가 정말로 반대하는 것을 보는 것입니다.
저는 JAVA, Perl, Python, C++ 등에서 경험이 풍부한 숙련 된 프로그래머이지만 WS 작성을 고려한 첫 번째 경험이며 다른 WS에 대한 사전 경험이 없으므로 어떤 지침을 찾고 있어요. WSDL/SOAP을 사용하고 인기 있고 간단하며 유용한 REST가 얼마나 많은지에 대해 모두 잊어 버리십니까?
BTW, REST를 사용하면 REST로 인한 디커플링 양이 클라이언트가 중단되지 않도록 보장하므로 서비스 발전에 대해 걱정할 필요가 없습니다. 따라서 클라이언트 업데이트에 대해 걱정할 필요가 없습니다. 필요한 기능을 추가하여 단계별로 새 버전으로 가져올 수 있습니다. Jan –
@JamesG 이런 생각에 동의하십시오. http://stackoverflow.com/a/32744753/794606 –