В частности, я хочу добавить заголовки CORS для 4xx и 5xx, чтобы мое веб-приложение внешнего интерфейса могло отображать пользователю информацию об ошибке.
В моем приложении у меня есть ресурс root
, и я использую putChild
добавить листовые ресурсы.Например:
root = Root()
proxy = Proxy()
root.putChild("".encode('utf-8'), Root())
root.putChild("proxy".encode('utf-8'), proxy)
proxy.putChild("listMonitors".encode('utf-8'), ListMonitors())
proxy.putChild("getMonitorValues".encode('utf-8'), GetMonitorValues())
proxy.putChild("setStartInstrument".encode('utf-8'), SetStartInstrument())
proxy.putChild("setStopInstrument".encode('utf-8'), SetStopInstrument())
proxy.putChild("setPowerOnInstrument".encode('utf-8'), SetPowerOnInstrument())
proxy.putChild("setPowerOffInstrument".encode('utf-8'), SetPowerOffInstrument())
site = server.Site(root)
Это кажется уместным из документации Twisted и может позволить установить заголовки в ответе, но я не уверен, как его применить.Нужно ли мне отказаться от метода putChild и вместо этого перейти к прямому трафику моего ресурса root
на все мои конечные ресурсы или noresource
для ошибки 404?А как насчет других типов ошибок?
ОБНОВЛЕНИЕ:
Комментатор запросил информацию о том, что Root
:
class Root(resource.Resource):
isLeaf = False
def render_GET(self, request):
request.setHeader('Access-Control-Allow-Origin', '*')
return "arkanoid?".encode()