2020年10月11日日曜日

API GATEWAY  Single Quote でServer Error を対策


Jsonペイロード中にあってはいけないのか、よく分かっていませんが、例えば、Pythonのコードのように、PythonコードがあるとSingleQuoteが発生します。 newtonsoftでこれをシリアライズていますが、Escapeしてくれません。そのままPayloadに乗ってAPIGateway通過時にServerErrorとなるようです。
import sc3
sc3.print('Hello Python3 Constraint World!\n')

そこで、PythonのREST API デモコードでは、次のようにしました。
json_open = open('problem.json', 'r') #Read problem.json file
json_load = json.load(json_open)#conver to dictionary

json_load["SolP"]["external_constraint_python"]=json_load["SolP"]["external_constraint_python"].replace('\'','\"') #Web API seems to reject Single Quote 

import sc3
sc3.print('Hello Python3 Constraint World!\n')

C# REST API デモコードでは、安直にDoubleQuoteのEsaceとしました。
 string rep_str = problem_server_string.Replace("'", "\\\"");//API Server dislikes ' 

0 件のコメント:

コメントを投稿