[OutSystems] Expose REST API의 OnResponse 사용
3849 단어 restoutsystems
OnResponse(후처리)의 동작을 확인해 보았습니다.
Expose한 REST API로, 각 메소드의 처리를 실행한 후에 동작하는 Action을 만들 수 있는 기능입니다.
출력 파라미터를 Text형 또는 Binary형으로서 받아, 그 값을 수정해 출력 파라미터에 설정하는 것으로 후처리할 수 있습니다.
OnRequest(전처리)의 경우,
Expose REST API의 OnRequest 시도 에서 확인하고 있습니다.
확인 환경
Personal Environment (Version 11.10.0 (Build 22910))
Service Studio(Version 11.10.13)
조작 대상은 BODY
이것은 OnRequest 때와 동일합니다.
Expose REST API의 기능은 헤더에 값을 출력할 수 있지만 OnResponse에서 제공하는 메커니즘에서는 해당 값에 액세스할 수 없습니다.
출력 변수의 속성이 하나일 때는 값 그 자체가 온다
출력 변수의 속성이 하나만 있고 Basic Type인 경우입니다.
아래와 같은 REST API 메소드(출력 변수는 Text형 1개).
OnResponse에 온 출력은 다음 형식이었습니다. JSON이 아닌 단순한 텍스트 형식으로 도착하는 것 같습니다.
이 변수를 편집해 봅니다.
값을 변경할 때 OnResponse Action의 CustomizedResponse 출력 변수에 Response 입력 변수를 편집한 값을 설정합니다.
브라우저에는 다음 응답이 반환되었습니다.
メッセージテキスト メソッドで追加 OnResponseで追加
출력 변수의 속성이 여러 개인 경우 JSON
Expose REST API에서 BODY에 출력하는 변수는 하나만 제한됩니다.
그렇다면 여러 값을 반환하는 방법은 여러 속성을 가진 Structure를 정의하고 API의 출력 변수 유형으로 설정합니다.
여기에서는 Text형의 Message와 Integer형의 Number를 가지는 Structure를 출력 변수 쪽으로 정의했습니다.
이 상태에서 OnResponse에 건너오는 값을 확인해 보겠습니다.
결과는 특별히 지정하지 않았지만 JSON이되었습니다.
"{""Message"":""メッセージテキスト メソッドで追加"",""Number"":1230}"
그런 다음 이 값을 다시 작성해 보겠습니다.
후처리로 정해진 항목을 추가하는 상황을 상정하고, JSON의 마지막 속성으로서 실행 일시를 더한다.
조금 손을 빼고, JSON 말미에 「}」를 「, RunAt="일시"}」로 옮겨놓는다(속성에 복합형이 포함되어 있으면 오동작한다).
위의 Assign은 실행일시를 「년/월/일시:분:초」형식으로 취득.
아래의 Assign이 출력 변수에 JSON 끝에 ", RunAt = "datetime""을 추가하는 처리.
RunAt=FormatDateTime(CurrDateTime(), "yyyy/MM/dd HH:mm:ss")
CustomizedResponse.ResponseText = Replace(Response.ResponseText, "}", ", ""RunAt"": """ + RunAt + """}")
ResponseBinary는 ResponseText를 Binary로 변환합니다.
OnResponse에서 입력 변수의 Response.ResponseBinary를 Text 형식으로 반환하여 어떤 값이 들어 있는지 확인합니다.
BinaryData 형식을 Text 형식으로 변환하려는 경우 BinaryData 모듈의 BinaryDataToText Action입니다. 변환시에 원 데이터를 해석하는 인코딩을 지정할 필요가 있습니다 (없으면 ASCII로서 읽어 버린다).
Debugger에서 멈추고 Response.ResponseText를 Text 형식으로 변환 한 Response.ResponseBinary를 비교하면 다시 일치했습니다.
Reference
이 문제에 관하여([OutSystems] Expose REST API의 OnResponse 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jyunji_watanabe/items/db85f7a04dccf08fbf06
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이것은 OnRequest 때와 동일합니다.
Expose REST API의 기능은 헤더에 값을 출력할 수 있지만 OnResponse에서 제공하는 메커니즘에서는 해당 값에 액세스할 수 없습니다.
출력 변수의 속성이 하나일 때는 값 그 자체가 온다
출력 변수의 속성이 하나만 있고 Basic Type인 경우입니다.
아래와 같은 REST API 메소드(출력 변수는 Text형 1개).
OnResponse에 온 출력은 다음 형식이었습니다. JSON이 아닌 단순한 텍스트 형식으로 도착하는 것 같습니다.
이 변수를 편집해 봅니다.
값을 변경할 때 OnResponse Action의 CustomizedResponse 출력 변수에 Response 입력 변수를 편집한 값을 설정합니다.
브라우저에는 다음 응답이 반환되었습니다.
メッセージテキスト メソッドで追加 OnResponseで追加
출력 변수의 속성이 여러 개인 경우 JSON
Expose REST API에서 BODY에 출력하는 변수는 하나만 제한됩니다.
그렇다면 여러 값을 반환하는 방법은 여러 속성을 가진 Structure를 정의하고 API의 출력 변수 유형으로 설정합니다.
여기에서는 Text형의 Message와 Integer형의 Number를 가지는 Structure를 출력 변수 쪽으로 정의했습니다.
이 상태에서 OnResponse에 건너오는 값을 확인해 보겠습니다.
결과는 특별히 지정하지 않았지만 JSON이되었습니다.
"{""Message"":""メッセージテキスト メソッドで追加"",""Number"":1230}"
그런 다음 이 값을 다시 작성해 보겠습니다.
후처리로 정해진 항목을 추가하는 상황을 상정하고, JSON의 마지막 속성으로서 실행 일시를 더한다.
조금 손을 빼고, JSON 말미에 「}」를 「, RunAt="일시"}」로 옮겨놓는다(속성에 복합형이 포함되어 있으면 오동작한다).
위의 Assign은 실행일시를 「년/월/일시:분:초」형식으로 취득.
아래의 Assign이 출력 변수에 JSON 끝에 ", RunAt = "datetime""을 추가하는 처리.
RunAt=FormatDateTime(CurrDateTime(), "yyyy/MM/dd HH:mm:ss")
CustomizedResponse.ResponseText = Replace(Response.ResponseText, "}", ", ""RunAt"": """ + RunAt + """}")
ResponseBinary는 ResponseText를 Binary로 변환합니다.
OnResponse에서 입력 변수의 Response.ResponseBinary를 Text 형식으로 반환하여 어떤 값이 들어 있는지 확인합니다.
BinaryData 형식을 Text 형식으로 변환하려는 경우 BinaryData 모듈의 BinaryDataToText Action입니다. 변환시에 원 데이터를 해석하는 인코딩을 지정할 필요가 있습니다 (없으면 ASCII로서 읽어 버린다).
Debugger에서 멈추고 Response.ResponseText를 Text 형식으로 변환 한 Response.ResponseBinary를 비교하면 다시 일치했습니다.
Reference
이 문제에 관하여([OutSystems] Expose REST API의 OnResponse 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jyunji_watanabe/items/db85f7a04dccf08fbf06
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
メッセージテキスト メソッドで追加 OnResponseで追加
Expose REST API에서 BODY에 출력하는 변수는 하나만 제한됩니다.
그렇다면 여러 값을 반환하는 방법은 여러 속성을 가진 Structure를 정의하고 API의 출력 변수 유형으로 설정합니다.
여기에서는 Text형의 Message와 Integer형의 Number를 가지는 Structure를 출력 변수 쪽으로 정의했습니다.
이 상태에서 OnResponse에 건너오는 값을 확인해 보겠습니다.
결과는 특별히 지정하지 않았지만 JSON이되었습니다.
"{""Message"":""メッセージテキスト メソッドで追加"",""Number"":1230}"
그런 다음 이 값을 다시 작성해 보겠습니다.
후처리로 정해진 항목을 추가하는 상황을 상정하고, JSON의 마지막 속성으로서 실행 일시를 더한다.
조금 손을 빼고, JSON 말미에 「}」를 「, RunAt="일시"}」로 옮겨놓는다(속성에 복합형이 포함되어 있으면 오동작한다).
위의 Assign은 실행일시를 「년/월/일시:분:초」형식으로 취득.
아래의 Assign이 출력 변수에 JSON 끝에 ", RunAt = "datetime""을 추가하는 처리.
RunAt=FormatDateTime(CurrDateTime(), "yyyy/MM/dd HH:mm:ss")
CustomizedResponse.ResponseText = Replace(Response.ResponseText, "}", ", ""RunAt"": """ + RunAt + """}")
ResponseBinary는 ResponseText를 Binary로 변환합니다.
OnResponse에서 입력 변수의 Response.ResponseBinary를 Text 형식으로 반환하여 어떤 값이 들어 있는지 확인합니다.
BinaryData 형식을 Text 형식으로 변환하려는 경우 BinaryData 모듈의 BinaryDataToText Action입니다. 변환시에 원 데이터를 해석하는 인코딩을 지정할 필요가 있습니다 (없으면 ASCII로서 읽어 버린다).
Debugger에서 멈추고 Response.ResponseText를 Text 형식으로 변환 한 Response.ResponseBinary를 비교하면 다시 일치했습니다.
Reference
이 문제에 관하여([OutSystems] Expose REST API의 OnResponse 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jyunji_watanabe/items/db85f7a04dccf08fbf06
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([OutSystems] Expose REST API의 OnResponse 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jyunji_watanabe/items/db85f7a04dccf08fbf06텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)