Я прочитал информацию о сбоях Spyne (http://spyne.io/docs/2.10/manual/03_types.html), но не могу понять, как правильно вызвать ошибку с кодом возврата 400. У меня правильно формируется ответ Fault, но с кодом возврата HTTP 500, когда у меня есть требование вернуть 400.
@srpc(Boolean, _returns=String)
def requestConfiguration(value):
#if value is true, get all the data
if value == True:
#todo - get the config
return 'True Received'
else:
# if anything other than True is received, MUST respond with a SOAP fault and HTTP 400
raise Fault(faultcode="Client.", faultstring="Value must be True")
# raise error.InvalidInputError("problem", "problem")
Чтение некоторой документации (http://spyne.io/docs/2.10/modules/spyne/model/fault.html#Fault), я интерпретирую это как FaultCode, который должен быть строкой, начинающейся с Client, и он вернет ошибку 400. (Я знаю, что если-иначе это плохо, я просто пытаюсь получить доказательство работоспособности концепции, прежде чем я напишу код правильно)
Я думаю, что мне нужно подклассифицировать ошибку, а не просто поднимать ее, но я не могу понять это. Я погрузился в код /protocol/soap/soap11 и увидел, что fault_to_http_reponse_code просто возвращает HTTP 500.
заранее спасибо