<div dir="ltr"><div>Buongiorno a tutti, esiste questa libreria per generare delle richieste SOAP verso zimbra:<br></div><div><a href="https://github.com/Zimbra-Community/python-zimbra">https://github.com/Zimbra-Community/python-zimbra</a></div><div><br></div><div>tuttavia ero curioso di provare la libreria zeep<br><a href="https://docs.python-zeep.org">https://docs.python-zeep.org</a></div><div><br></div><div>per avere un paragone e capire se può essere una valida alternativa.</div><div>Sarò sincero, non mangio xml a colazione e vi chiedo se qualcuno ha voglia di aiutarmi a generare una richiesta SOAP valida tramite zeep.<br></div><div><br></div><div>Zimbra ha una buona documentazione delle proprie API:</div><div><a href="https://files.zimbra.com/docs/soap_api/8.8.15/api-reference/index.html">https://files.zimbra.com/docs/soap_api/8.8.15/api-reference/index.html</a></div><div><br></div><div>Una delle più banali è la GetAccountInfo.</div><div>All'inizio di ogni pagina c'è specificato se serve un "Authorization token required" (autenticazione utente "normale") oppure "Admin Authorization token required" (utente amministratore).</div><div></div><div><br></div><div>Altro concetto importante per l'ambiente Zimbra sono i name space.</div><div>GetAccountInfo fa parte dello urn:zimbraAccount.<br>Tale info la si trova sempre nelle pagine delle api ma ance nella vsdi<br></div><div><br></div><div>python3 -mzeep <a href="https://my-zimbra.addr.tld/service/wsdl/ZimbraUserService.wsdl">https://my-zimbra.addr.tld/service/wsdl/ZimbraUserService.wsdl</a><br>Prefixes:<br>xsd: <a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a><br>ns0: urn:zimbra<br>ns1: urn:zimbraMail<br>ns2: urn:zimbraAccount<br>ns3: urn:zimbraRepl<br>ns4: urn:zimbraSync<br>ns5: urn:zimbraVoice<br></div><div><br></div><div>Nonostante abbia chiaro cosa inserire in una richiesta, non mi è chiaro come fare con la libreria zeep.<br></div><div>Sempre nell'esempio di GetAccountInfo, il contenuto nel tag name viene interpretato in base a quando inserito nel paramentro "by". Se by="name", il contenuto del tag sara ad esempio <a href="mailto:joun.doe@domain.com">joun.doe@domain.com</a>, se è by="id" sarà una codice, tipo 1973122c-53c9-4459-b8f9-51a2293dee33.<br></div><div>Non ho idea di come vadano passate queste 2 informazioni e tanto meno quella del name space.<br></div><div><br></div><div>In fine credo che la parte più difficile nell'uso della libreria zeep è probabilmente la gestione della sessione SOAP che non ho idea di come vadano gestite.<br></div><div><br></div><div>Preciso che non sono uno sviluppatore e studio python nei ritagli di tempo :-(<br></div><div>Non ho quindi un particolare background su programmazione / interazione con servizi web dal punto di vista di programmazione.<br></div><div><br></div><div>Un saluto.<br></div></div>