비즈니스 프로세스에 대한 끝점을 만들 때 이 요청에서 보낼 데이터 유형을 지정해야 합니다( Request payload type ). 가장 일반적인 옵션은 JSON 입니다. 이를 통해 필요한 모든 매개변수를 편리하게 지정하고 데이터 모델 또는 객체 배열을 전달할 수 있습니다. 또한 XML 또는 Multipart Form (파일을 보내야 하는 경우)과 같은 다른 옵션도 가능합니다.
동시에 정확한 구조를 미리 알 수 없는 경우(또는 단순히 중요하지 않은 경우) 상황이 허용됩니다. 이 경우 합리적인 옵션은 " raw " 쿼리를 사용하는 것입니다.
raw 요청에 대한 비즈니스 프로세스
이것이 필요할 수 있는 상황을 상상해 보십시오. 우리가 개발하고 있는 서비스가 단지 연결 고리라고 가정해 봅시다. 그 작업은 사용자로부터 요청을 수신하고, 권한 부여를 확인하고, 로그를 저장하고, 스팸 방지를 수행하고, 모든 것이 정상인 경우 요청을 추가로 리디렉션하는 것입니다.
Raw 쿼리의 중요한 기능은 비즈니스 프로세스를 설계할 때 입력 매개변수가 사용되지 않는다는 것입니다. 대신 요청 본문을 가져오는 데 특수 블록이 사용됩니다 - Get Request Body 본문 가져오기 . 요청에 대한 확장된 정보에 관심이 있다고 가정합니다. 이 경우 Current Request Info 블록이 적합한 옵션입니다. 요청 본문뿐만 아니라 추가 매개변수 및 요청 헤더도 반환합니다.
요청의 특정 헤더에 관심이 있는 경우 Get Request Header 블록을 사용하여 얻을 수 있습니다. 위의 예는 요청의 IP 주소가 포함된 X-Real-IP 헤더를 읽습니다. 결과 IP는 주어진 IP가 유효한지 확인하고 금지된 주소의 블랙리스트에 없는지 확인해야 하는 기능에 전달됩니다. 결과적으로 프로세스는 적절한 오류 메시지와 함께 중단되거나 모든 것이 정상이면 추가 실행이 허용됩니다.
Raw 로 수신된 요청은 바이트 배열로 표시됩니다. 인식의 편의를 위해 문자열로 변환할 수 있습니다( To String 블록). 이 형식에서 정보는 로그에 저장됩니다.
이 경우 변환 없이 요청 자체를 HTTP Request 블록을 사용하여 추가로 리디렉션할 수 있습니다. 이 예에서는 요청 방법, 해당 URL 및 요청 본문( Current Request Info 블록에서 가져옴)이 지정됩니다. HTTP Request 블록의 결과는 전체 비즈니스 프로세스의 결과로 사용됩니다.
스크린샷은 최종 비즈니스 프로세스를 보여줍니다. 기능 블록( FUNC Save request Log 및 FUNC IP Blacklist Check )은 예시이며 이 프로젝트의 범위 내에서만 존재합니다.
따라서 엔드포인트를 사용하여 실제 내용에 관계없이 모든 요청을 처리할 수 있습니다. 제3자 서비스로 보내야 하는 정확한 요청을 알 필요가 없으며, 일부 변경(모델 추가, 매개변수 이름 변경)이 있더라도 엔드포인트를 변경하지 않고 계속 사용할 수 있습니다. 프로젝트.