JSON, REST, SOAP, WSDL 및 SOA : 서로 연결하는 방법
현재 몇 가지 시험을 진행 중이며 몇 가지 개념을 고심하고 있습니다. 이것들은 모두 실제로 내 노트에 언급되었지만 실제로는 서로 어떻게 연결되어 있는지 이해하지 못했습니다. 내 이해는 :
SOA-서비스 소비자 / 제공자가 통신하도록하는 솔루션입니다. (내가 이해하는 한 이것은 다른 모든 것에 대한 포괄적 인 용어입니다)
WSDL-제공자 서비스를 설명하는 언어입니다.
SOAP-서비스가 메시지를 보내기 위해 사용하는 XML 프로토콜 '래퍼'. 매개 변수를 제공하기 위해 WSDL과 함께 작동합니까?
REST-기능적으로 SOAP와 유사하지만 XML을 피하는 디자인 패턴? (실제로 이것에 대해 확실하지 않음)
JSON-자바 스크립트를 사용하는 XML의 대안? (이것에 대해서도 확실하지 않음)
인터넷을 둘러 보면 이들 모두가 무엇이고 어떻게 상호 연결되어 있는지에 대한 명확한 정의가없는 것 같습니다.
웹 응용 프로그램을 개발 중이고 더 큰 자유를 얻을 수 있기 때문에 응용 프로그램의 프레젠테이션에서 기능을 분리하기로 결정했다고 가정 해보십시오.
API를 작성하고 다른 사용자도 자신의 프론트 엔드를 구현할 수 있습니다. 여기서 방금 한 것은 웹 서비스를 사용 하는 SOA 방법론을 구현하는 것 입니다.
웹 서비스를 통해 플랫폼 및 프로그래밍 언어와 독립적으로 표준 인터넷 프로토콜을 통해 기능적 빌딩 블록에 액세스 할 수 있습니다.
따라서 유용한 것을 처리하고 생성하는 백엔드 (웹 서비스)와 데이터를 소비하는 프런트 엔드 (어떤 것이 든) 사이의 교환 메커니즘을 설계합니다. (웹, 모바일 또는 데스크탑 응용 프로그램 또는 다른 웹 서비스). 여기서 유일한 제한 사항은 프런트 엔드와 백 엔드가 동일한 "언어"를 "말해야"한다는 것입니다.
SOAP 및 REST가 제공됩니다. 웹 서비스와 통신하는 표준 방법입니다.
비누:
SOAP는 내부적으로 XML을 사용하여 데이터를주고받습니다. SOAP 메시지는 견고한 구조를 가지며 응답 XML을 구문 분석해야합니다. WSDL 은 어떤 요청을 할 수 있는지, 어떤 매개 변수를 사용하여 무엇을 반환할지에 대한 사양입니다. API의 완전한 사양입니다.
쉬다:
REST는 디자인 컨셉입니다.
월드 와이드 웹은 REST 아키텍처 스타일을 따르는 시스템의 최대 구현을 나타냅니다.
SOAP만큼 강하지는 않습니다. RESTful 웹 서비스 는 표준 URI 및 메소드를 사용하여 웹 서비스를 호출합니다. URI를 요청 하면 객체 의 표현 을 반환하여 작업을 수행 할 수 있습니다 (예 : GET, PUT, POST, DELETE). 데이터를 표현하기 위해 XML을 선택하는 것에 국한되지 않고 실제로 무엇이든 선택할 수 있습니다 (JSON 포함)
Flickr의 REST API는 더 나아가 이미지를 반환 할 수 있습니다.
JSON 과 XML 은 기능적으로 동일하며 일반적인 선택입니다. 프로토 타입을 기반으로하는 GRPC 및 API 생산자와 소비자 간의 통신에 사용할 수있는 Apache Thrift와 같은 RPC 기반 프레임 워크도 있습니다. 웹 API에서 사용하는 가장 일반적인 형식은 모든 언어에서 사용하고 구문 분석하기 쉽기 때문에 JSON입니다.
WSDL : 웹 서비스 기술 언어를 의미
SOAP (Simple Object Access Protocol)에서 웹 서비스를 사용하고 웹 서비스를 프로젝트에 추가 할 때 클라이언트 응용 프로그램은 웹 서비스 기능에 대해 알지 못합니다. 요즘 그것은 구식이며 다른 종류의 클라이언트마다 다른 WSDL
파일 을 구현해야 합니다. 예를 들어 .Net
, php
클라이언트 와 동일한 파일을 사용할 수 없습니다 . 이 WSDL
파일에는 웹 서비스 기능에 대한 설명이 있습니다. 이 파일의 형식은입니다 XML
. SOAP
에 대한 대안입니다 REST
.
REST : 대표 상태 이전을 나타냅니다
또 다른 종류의 API 서비스이며 클라이언트가 사용하기 쉽습니다. 파일과 같은 특별한 파일 확장자를 가질 필요는 없습니다 WSDL
. CRUD 오퍼레이션은 서로 다른 HTTP Verbs
(읽기 용 GET, 작성 용 POST, 업데이트를위한 PUT 또는 PATCH 또는 원하는 문서를 삭제하기위한 DELETE) 구현 될 수 있으며 , HTML
프로토콜을 기반으로 하며 대부분 응답이 형식 JSON
또는 XML
형식입니다. 반면에 클라이언트 응용 프로그램은 HTTP Verb
정확한 매개 변수 이름과 유형을 통해 관련 항목을 정확하게 호출해야 합니다. 와 같이 정의 할 특수 파일이 없기 때문에 WSDL
엔드 포인트를 사용하는 수동 작업입니다. 그러나 클라이언트 측 구현을 생성하기 위해 다양한 IDE 용 플러그인이 많이 있기 때문에 큰 문제는 아닙니다.
SOA : 서비스 지향 아키텍처의 약자
웹 서비스 개념 및 아키텍처가 포함 된 모든 프로그래밍이 포함됩니다. 대규모 응용 프로그램을 구현한다고 가정 해보십시오. 한 가지 방법은 마이크로 서비스라고하는 다른 서비스가있을 수 있으며 전체 응용 프로그램 메커니즘은 적절한 웹 서비스를 적시에 호출하는 것입니다. 모두 REST
와 SOAP
웹 서비스의 종류입니다 SOA
.
JSON :의 약자javascript Object Notation
자바 스크립트를 위해 객체를 직렬화 할 때 객체 형식의 유형은 JSON입니다. 인간 계급이 있다고 상상해보십시오.
class Human{
string Name;
string Family;
int Age;
}
이 클래스의 인스턴스가 있습니다.
Human h1 = new Human(){
Name='Saman',
Family='Gholami',
Age=26
}
h1 객체를 JSON으로 직렬화하면 결과는 다음과 같습니다.
[h1:{Name:'saman',Family:'Gholami',Age:'26'}, ...]
javascript
can evaluate this format by eval()
function and make an associative array from this JSON
string. This one is different concept in comparison to other concepts I described formerly.
'Programming' 카테고리의 다른 글
Pragma와 Cache-control 헤더의 차이점은 무엇입니까? (0) | 2020.06.07 |
---|---|
문자열에 특정 텍스트 조각이 있는지 확인 (0) | 2020.06.07 |
C # 문자열 참조 유형? (0) | 2020.06.07 |
NoSql과 관계형 데이터베이스 (0) | 2020.06.07 |
중지 된 Docker 컨테이너 만 나열 (0) | 2020.06.07 |