Mendix 6.6에는 REST 서비스 호출 및 데이터 처리에 도움이 되는 주요 새로운 기능이 포함되어 있습니다. 원래는 Mendix 7이었지만, 커뮤니티에서 이 기능에 대한 열광적인 반응을 얻으면서 지금 바로 출시하기로 결정했습니다!
새로운 릴리스를 사용하면 새로운 마이크로플로우 액션으로 REST 서비스를 호출할 수 있습니다. REST 응답은 종종 JSON 형식이므로 JSON과 XML을 처리하도록 데이터 매핑 문서를 확장했습니다.
REST와 인터넷
REpresentational State Transfer(REST)의 기본 아이디어는 인터넷의 초기 아키텍처인 HyperText Transfer Protocol(HTTP)과 매우 유사합니다. HTTP는 서버에서 클라이언트로, 그리고 그 반대로 콘텐츠를 전송하도록 설계되었습니다. 초기에는 콘텐츠가 종종 텍스트였고 HTML(HyperText Markup Language) 형식이었습니다. 콘텐츠는 서버에 저장되었고 주소인 URL(Universal Resource Locator)로 고유하게 식별되었습니다. 예를 들어, 브라우저에 URL을 입력하면 웹페이지를 얻을 수 있습니다. 또는 파일을 서버에 업로드할 때 URL에 데이터를 게시할 수 있습니다.
이 초기 아이디어를 일반화하면 REST의 의미를 이해할 수 있습니다. 6가지 필수 요소가 있습니다.
- 주 정부. 이것은 서버의 리소스로, 내부 형식으로 저장됩니다. 예를 들어: 데이터베이스의 제품 데이터.
- 대표. 서버의 모든 데이터가 관련성이 있는 것은 아닙니다. 종종 클라이언트가 이해할 수 있는 일반 형식으로 필터링하여 제출해야 합니다. 데이터의 표현은 인터넷을 통해 전송됩니다. 몇 가지 일반적인 표현은 XML, JSON, HTML 또는 이미지나 PDF 파일과 같은 이진 데이터입니다.
- URL. 리소스에 대한 고유한 주소.
- 방법. 리소스로 무엇을 할 것인지를 나타내는 HTTP 요청의 텍스트 동사. 예:
GET자원,POST새로운 리소스,PUT업데이트된 리소스PATCH작은 변화를 만들기 위한 리소스 또는DELETE리소스. 이 동사는 HTTP 메시지에서 문자 그대로 표현됩니다. - 헤더. HTTP 헤더는 메시지에 추가 정보를 제공합니다. 예를 들어,
Content-Type: application/json메시지의 표현이 JSON 형식임을 지정합니다. - 상태 코드. HTTP 응답 메시지에 추가된 간단한 숫자입니다. 예: 200은 OK를 의미하고 404는
Resource not found.
예: 애완동물 가게
REST 사용을 시작하는 간단한 예는 Swagger의 Petstore입니다. 이것은 인터넷의 모든 사람이 자신의 반려동물 설명을 제출하고 다른 사람의 반려동물을 볼 수 있는 공개 REST 예입니다.
GEThttps://petstore.swagger.io/v2/pet/100 returns a pet.POSThttps://petstore.swagger.io/v2/pet adds a new pet to the store.DELETEhttps://petstore.swagger.io/v2/pet/101 deletes a pet.
. Mendix 모델러는 다음을 추가할 수 있습니다. REST 작업 호출 마이크로플로우로. 위치(URL), HTTP 메서드 및 HTTP 헤더를 지정할 수 있습니다. 아래 이미지를 참조하세요.
위의 URL에 GET 요청을 하면 JSON 형식으로 ID가 100인 애완동물의 표현을 다시 받게 됩니다. HTTP 헤더에서 응답에서 JSON을 허용한다고 지정합니다.
누구나 자신의 애완동물을 swagger에 POST할 수 있으므로 다른 사람이 애완동물에 몬스터를 PUT한 경우 다른 번호를 시도할 수 있습니다. 누군가가 애완동물을 삭제한 경우 다음으로 이동하여 애완동물을 빠르게 복원할 수 있습니다. https://petstore.swagger.io/#!/pet/addPet, 예제 값을 클릭한 다음 'Try it out!'을 클릭하면 ID 100의 기본 애완동물이 추가됩니다. 물론 직접 애완동물을 POST할 수도 있습니다. 호출 휴식 작업 (이 블로그의 마지막 섹션을 참조하세요).
JSON 스니펫 및 스키마 추출
JSON 형식은 기계가 이해할 수 있는 언어로 애완동물을 표현한 것입니다. JSON 답변을 쉽게 변환할 수 있도록 만들었습니다. Mendix 예를 들어 정보를 표시하기 위한 객체 Mendix 생성된 페이지. REST 서비스에는 종종 데이터가 어떻게 다시 전송되는지 보여주는 설명서가 함께 제공됩니다. Pet Store 설명서에는 예제 JSON 스니펫이 함께 제공됩니다(참조 https://petstore.swagger.io/#!/pet/getPetById 응답 콘텐츠 유형 포함 application/json).
{"id":100,"category":{"id":0,"name":"test"},"name":"doggie","photoUrls":["string"],"tags":[{"id":0,"name":"string"}],"status":"available"}
이 스니펫을 다음에 붙여넣으면 Mendix 'JSON 구조' 문서(클릭 형성 새로 고침), Mendix 다시 전송되는 데이터의 구조를 추출합니다.
매핑
추출된 구조는 다음에서 사용됩니다. 가져오기 매핑 문서. 매핑은 기본적으로 들어오는 JSON 데이터를 어떻게 변환해야 하는지 지정합니다. Mendix 객체. 매핑은 고유한 도구입니다. Mendix 그리고 JSON 또는 XML을 사용할 수 있는 엔티티로 변환하는 데 매우 강력합니다. 애완동물 예는 비교적 간단하지만 다른 서비스에서는 표현이 상당히 복잡해질 수 있습니다. 매핑 도구는 Mendix 매우 직관적인 방법으로 데이터 복잡성을 처리할 수 있습니다.
- 애플리케이션에서 사용하고 싶은 스키마의 요소를 쉽게 선택할 수 있습니다. 사용하고 싶지 않은 데이터 구조로 도메인 모델을 오염시킬 필요가 없습니다.
- 매핑에 엔터티를 끌어서 놓으면 해당 엔터티가 들어오는 데이터와 자동으로 결합됩니다.
- 수신 데이터가 어떻게 변환되는지 사용자 지정하려면 Mendix 객체는 매핑에 마이크로플로우를 결합함으로써 그렇게 할 수 있습니다. 기존 객체를 업데이트하도록 선택할 수 있습니다. 객체를 찾는 데 사용해야 하는 속성을 선택하기만 하면 됩니다(키).
- 버튼을 클릭하면 JSON에 대한 엔터티와 연결을 생성할 수 있습니다. 자동으로 지도 만들기. 수동으로 만들 필요는 없습니다. 하지만 물론 변경하거나 기존 데이터 모델을 활용하는 것은 자유롭습니다. 예를 들어, 엔터티를 만들 수 있습니다. 지속 가능 도메인 모델에서 객체를 데이터베이스에서 직접 읽어 페이지의 데이터 그리드에 넣을 수 있습니다.
매핑을 연습하면 몇 번의 마우스 클릭만으로 복잡한 데이터 구조를 얼마나 쉽게 처리할 수 있는지 깨닫게 될 것입니다.
REST 호출에서 직접 매핑 사용
REST 호출에 데이터 매핑을 쉽게 결합할 수 있습니다. 우리의 반려동물 예시를 따라가면 서비스에서 수신한 모든 반려동물은 PET 엔터티에 매핑됩니다. 이를 위해 복잡한 표현식을 작성할 필요가 없으며, 모든 것이 우리의 시각적 매퍼에 의해 처리됩니다.

당사의 매핑 문서는 XML 형식도 지원합니다. JSON 또는 XML이 아닌 다른 형식의 텍스트 데이터를 수신하는 경우 결과를 문자열 변수에 저장하여 나중에 마이크로플로에서 분석할 수 있습니다. REST 호출이 이미지 또는 PDF 파일과 같은 바이너리 데이터로 응답하는 경우 해당 데이터를 문자열 변수에 저장할 수 있습니다. FileDocument or Image 객체. 이진 표현에 대한 지원은 이후 버전에서 추가될 예정입니다. Mendix.
애완동물을 애완동물 가게로 보내기
매핑 예제에서 우리는 다음에 초점을 맞췄습니다. GET 애완동물과 엔티티에 대한 지도. 다른 HTTP 메서드도 지원됩니다. 예를 들어, POST PUT: 서버로 보낼 메시지를 작성해야 합니다(메시지에는 보내고 싶은 애완동물의 표현이 포함되어 있음). Export Mapping 문서는 또한 변환을 지원합니다. Mendix 객체를 JSON 또는 XML로 변환합니다. 가져오기 매핑과 동일하게 보이지만 물론 화살표가 반대로 되어 있습니다! 그리고 프로젝트에서 만든 모든 JSON 구조 문서를 재사용하여 반복적인 작업을 하지 않아도 됩니다. 매우 간단한 요청의 경우 문자열 템플릿을 사용하여 HTTP 메시지를 빌드할 수도 있습니다. 이 JSON 스니펫을 붙여넣어 보세요. POST https://petstore.swagger.io/v2/pet에 대한 요청:
{"id":100,"category":{"id":0,"name":"string"},"name":"doggie","photoUrls":["string"],"tags":[{"id":0,"name":"string"}],"status":available"}
맺음말
앱 개발자로서 요즘은 다른 시스템과의 통합을 피할 수 없습니다. 우리는 REST 서비스와의 통합을 매우 쉽게 만들었습니다. REST 마이크로플로우 액션 호출. REST 서비스로 전송되고 수신되는 데이터를 처리하려면 Mendix JSON과 XML 표현을 모두 지원합니다. 매핑 문서는 데이터 구조를 처리하는 데 매우 직관적이며 REST 호출에 완전히 통합되어 있습니다.
직접 시도해보고 통합이 얼마나 강력하고 재밌는지 확인해 보세요!





