Как Zeep-модуль Python может работать с менеджером API? - PullRequest
0 голосов
/ 07 января 2020

Я использовал Zeep против SOAP -сервиса, и он отлично работает. Однако, когда этот сервис находится за Gravitee API Manager, я не могу заставить его работать дольше, просто получаю ответ 404.

Вот мой код:

from zeep import Client, Settings
import base64,sys, logging, traceback
from requests import Session
from zeep.transports import Transport
import requests
from lxml import etree

wsdl= 'https://link_to_service_on_gravitee'

session = Session()
session.verify = False
session.headers['Api-Key']= 'xxxxx'

transport = Transport(session=session)
settings = Settings(raw_response=True, strict=False, xml_huge_tree=True)
client = Client(wsdl, transport=transport, settings=settings)

data = []
data.append(
    {'ServerProcessId': 'GL07',
    'OrderNumber': 1}
     )

cdata = []
cdata.append(
    {'Username': 'xxx',
     'Client': 'yyy',
     'Password': 'zzz'}
     )  

node = client.create_message(client.service, 'GetResult',input=data, credentials=cdata)
print('*** SOAP Message')
print(etree.tostring(node))
print('*** End SOAP Message')


response = requests.Response()
try:     
   response = client.service.GetResult(input=data, credentials=cdata)
   print(response)
except Exception as e:
   print(response.headers)
   logging.error(traceback.format_exc())

Когда Я тестирую сообщение, сгенерированное Python (etree.tostring (node)) в SOAPUI, оно работает правильно. Кроме того, если я изменяю api-ключ, я получаю сообщение об ошибке аутентификации, поэтому Gravitee, похоже, принимает ключ из моего кода. Но ответ, который я получаю, с правильным API-ключом, всегда [404].

Получил его, когда я загрузил wsdl в локальный файл, но не хочу делать это для каждого wsdl.

Есть идеи?

1 Ответ

0 голосов
/ 24 января 2020

Есть несколько причин для получения 404 от Gravitee: * Вы создали API * Вы создали простой план для этого API * Вы развернули API на шлюзе.

После всех этих шагов все готово, вы должны иметь возможность использовать ваш API.

Надеюсь, это поможет,

С уважением,

...