OTRS 5でのWebサービスの段階的な設定

この記事では、OTRS 5でWebサービスを構成する方法、入力する場所と内容、およびSoapUIを使用してサービスのパフォーマンスを確認する方法を説明します。 RESTではなくSOAPを構成します。 OTRSをプロバイダーとして設定します、つまり システムは要求に応じてデータを提供します。 興味があれば、猫をお願いします。









そこで、素晴らしいOTRSをインストールし、そこで作業を開始しました。 そして、ここで管理者は報告が必要でした。 そして、いくつかではなく、むしろ複雑です。 内部レポートを深く調べるのではなく、Webサービスシステムからデータを単純に収集し、別のプログラムでレポートを作成することにしました。



そのため、管理→Webサービスに移動します。













新しいWebサービスを作成します。



1)インターフェイスの名前を入力します

2)ネットワークトランスポートHTTP :: SOAPを選択します

3)[保存]をクリックします。







保存後、[ 操作]を選択できます。



チケットを処理するために必要なのは3つだけです。



SessionCreate-セッションを作成し、今後そのIDを使用し、毎回ログインパスワードを送信しないようにします。

TicketSearch-指定された基準(この場合、特定の期間のオープンとクローズ)でチケットを見つけることができます。 チケットID(より具体的には、番号ではなくID)のリストを返します。

TicketGet-チケットIDで特定のチケット(または複数)を取得できます。







オペレーションを作成するときに、後でそれを呼び出す名前を指定します。







最後に、ネットワークトランスポートの構成に移動して、名前空間とメッセージの長さを設定します。 1000の長さは、私たちにとって非常に素晴らしいものでした。











名前空間は次のリンクです。



example.com/otrs/nph-genericinterface.pl/Webservice/InterfaceName



example.comがドメインである場合、 InterfaceNameインターフェイスの名前です。 暗号化が構成されている場合、httpではなくhttps。



OTRSのすべての設定がすべて行われます。 今、外部のサービスにアクセスする方法は? これを行うには、SoapUIを配置し、wsdlスキームを取得してSoapUIに渡します。



インターネット上では、OTRS自体はWSDLスキームを放棄しないと多くの人が不満を言いました。これは実際には問題です。



それを共有してくれた親切な人々に感謝します。



github.com/OTRS/otrs/tree/master/development/webservices



そこで、彼らが提案してくれたファイルを少しやり直してください。



GenericTicketConnectorSOAP.wsdlファイルのヘッダーで、 定義名をWebサービスの名前に変更します。



<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions name="GenericTicketConnectorSOAP" targetNamespace="http://www.otrs.org/TicketConnector/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.otrs.org/TicketConnector/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <wsdl:documentation>
      
      





さらに、 soapActionのすべてのsoap:操作 http://www.otrs.org/TicketConnectorをNameSpaceに変更します。



 <soap:operation soapAction="http://www.otrs.org/TicketConnector/TicketCreate" />
      
      





そして、 wsdl:portのドキュメントの最後で、 locationに NameSpaceを指定します。



 <wsdl:port name="GenericTicketConnector_Port" binding="tns:GenericTicketConnector_Binding"> <soap:address location="http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorSOAP" /> </wsdl:port>
      
      





Soap UIを起動し、新しいSOAPProjectを作成し、スキームでファイルを指定します。



結果は次のようになります。 SoapUIは基本的なリクエストを自動的に生成します。







そして最後のコードは、サービスパフォーマンスのチェックです。 サービスからSessionIDが返されました。これは、毎回ユーザー名とパスワードを転送しなくても、他のリクエストで既に使用できます。







いくつかのニュアンス:



1)すでに述べたように、OTRSはWSDLスキームを提供しません。これは非常に不便です。

2)要求に応じて、TicketSearchは500個までのIDを提供します。 500を超える数を受け取る必要がある場合でも、500だけを受け取ることになります。これを回避する方法が見つかりませんでした。

3)TicketGetがSolutionDiffInMin(アプリケーションの解決時間がSLAによるターゲットと異なる時間)を返すためには、Extendedのリクエストに何かを転送する必要があります。



誰かが面白いコメントを持っている場合、コメントは大歓迎です:)



PSは、検索中に500個以下のメッセージが返されたという事実について、「GenericInterface :: Operation :: TicketSearch ### SearchLimit」パラメーターの増加が役立ちました。

助けてくれてeisaevに感謝します。

PPSは、OTRSを質問機として設定する方法に関する2番目の記事です。



All Articles