ロシアの低コストホストからのサービスを操作するためのAPIを開く(パート1)

長い間休止した後、私たちは考えをまとめて、一度に複数のサービスを注文する必要がある開発者と一般顧客の両方に役立つ短い記事シリーズを準備することにしました。



この出版物の前提条件はずっと前に登場しました。 多数の仮想サーバーを持つクライアントの1つが、請求APIを使用できるかどうかを尋ねました。 当時、正直なところ、私たちはそのような対話の準備ができておらず、既成のソリューションを提供できませんでした。
夏の初め以来、私たちはこのような質問をさらにいくつか受け取っており、それらを未回答のままにしておくことはできないことに気付きました。 今日は、当社の請求APIを使用して、任意の数量の仮想サーバーを注文する方法を説明します。


請求システムとして、ロシアの会社ISPsystemの製品-BILLmanager4を使用します。 すべてのISPsystem製品用のオープンAPIがあり、公式ドキュメントサイトispdoc.comで多少説明されています
コマンドラインからAPIを操作し、mgrctlインタープリターに直接アクセスするか、ブラウザーのアドレスバー(またはWebサーバーにリクエストを送信する他のアプリケーション:curl、wgetなど)にアクセスできます。
ドキュメントに基づいて、任意の製品にリクエストを行うことができますが、請求を処理する場合、一定量の情報が必要になります。これはホスティングプロバイダーの側からのみ利用できます。

仮想サーバーを注文するためのリクエストは、たとえば、KVM Ferrumを1か月間自動更新し、ISPmanagerライセンスを使用しないCentos-6.7-x86_64-minimal OSテンプレートは次のようになります。

https://billing.ihor.ru/billmgr?authinfo=<USER>:<PASS>&addon_1101=20&addon_1103=1&addon_1104=1&addon_1110=1&addon_1791=4&enum_1112=21&enum_1106=25&agree=on&domain=test-for.habr&ostempl= Centos-6.7-x86_64-minimal&period=1210&price=1100&autoprolong=1210&payfrom=neworder&func=vds.order.7&sok=ok 


次に、この変数と数値のヒープをすべて解読してみましょう。
リクエスト自体は、条件付きで2つの部分に分けることができます。これらは、請求URLと請求に送信されるリクエストパラメータです。
パラメータ自体は次のように配布できます。

パラメータの説明



認証データとして、請求書に登録されているユーザーのログイン名とパスワードが表示されます。


各料金プランには、表「料金プラン」から取得した請求書に固有の識別子があります。


料金プランのパラメーターには、仮想サーバーのパラメーターとそのリソースが含まれます。 料金プランの各パラメータには、ディスクのサイズ、プロセッサコアとRAMの数、およびIPv6とIPv4アドレスに対応する独自の識別子と独自のデフォルト値があります。


追加のサービスには、DNSサーバーとISPmanangerライセンスの使用が含まれます。


(KVM Ferrumのデフォルトオプション)


各サービスの注文期間の識別子と自動更新はまったく同じです。


ドメイン名は一意である必要があります。 そうしないと、エラーが表示されます。
エラー:ドメインは既に使用されています。 別のドメイン名を指定してください。
仮想サーバーを一括で追加する場合は、フォーマット+ <シリアル番号>を使用することをお勧めします。


テンプレートの不完全なリストは、以下のこのテキストに記載されています。 ISPmanagerなしでOSテンプレートを注文する場合、追加サービスの値を設定する際に、ISPmanagerコントロールパネルの使用を無効にする必要があることに注意してください(すべての料金プランでは、この識別子は同じです-25)


この例では、支払いパラメーターの値-neworderを引用しました。これは、サーバーごとに支払いを行う個別の注文に対応します。 payfrom = neworder


仮想サーバーの順序全体が7つのステップで構成されているため、一見あまり明らかではないAPIは、vds.order関数自体だけでなく、最後のステップの番号も指定する必要があります-7。 func = vds.order.7


いずれかのサービスを注文する場合、ユーザー契約に慣れて同意する(その後、注文がアクティベーションに進む)か、受け入れない(注文がキャンセルされる)ことをお勧めします。 APIでは、この項目も必要です: agree = on


パラメーターの一部は固定されており、説明で値を指定しました。その他の値は、 ホスティングの操作に関する参照情報とともにサイトページに完全に表示される表から取得できます。

すべての料金プランで大きなテーブルでテキストが乱雑にならないように、KVM Ferrum料金プランで仮想サーバーを注文するためのラインがどのように作成されたかを理解するのに役立つ部分のみを提供します。 また、他の2つの下関税計画では、SSDとOVZ

料金プラン


価格期間/自動延長
関税ID1ヶ月3ヶ月6ヶ月1年
KVMフェラム11001210121312141211
SSDフェラム10331180118311841181
Ovz ferrum20611758176117621759


料金プランのオプション


addon_enum_
関税/価値運転RAMCPUIPv4IPv6NSISPmgr
KVMフェラム1101
/ 20
1103
/ 1
1104
/ 1
1110
/ 1
1791
/ 4
1112
/ 21
1106
/(1/25)
SSDフェラム1034
/ 20
1037
/ 1
1043
/ 1
1036
/ 1
1404
/ 4
1045
/ 21
1039
/(1/25)
Ovz ferrum2062
/ 20
2065
/ 1
2071
/ 1
2064
/ 1
2074
/ 4
2073
/ 21
2067
/(1/25)

テンプレートリスト



要求が正しく行われ、新しいサービスのアクティベーションの申請が受け入れられた場合、次のような応答が返されます。

 <script language='JavaScript'>fr_master('startpage=vds', 'top.');</script> 


以下では、ボーナスとして、いくつかのスクリプトを適用して、LinuxおよびWindowsコンソール用の任意の数の仮想サーバーを注文します。
コメントが課金のAPIを使用するというテーマの開発に関心を示している場合、さまざまなプログラミング言語と統合用のソフトウェア製品を使用して、より詳細に説明しようとします。

BASHの例
 #/bin/bash # #    USER=user PASS=password #  10   for i in {1..10} do /usr/bin/curl https://billing.ihor.ru/billmgr?authinfo=$USER:$PASS&addon_1101=20&addon_1103=1&addon_1104=1&addon_1110=1&addon_1791=4&enum_1112=21&enum_1106=25&agree=on&domain=$USER-$i.ru&ostempl= Centos-6.7-x86_64-minimal&period=1210&price=1100&autoprolong=1210&payfrom=neworder&func=vds.order.7&sok=ok" done 


残念ながら、Windowsで動作するようにコンパイルされたcurlを使用して前のサイクルを複製する方法を除いて、適切なオプションを考え出すことはできませんでした。 ただし、Windowsのスクリプト作成/プログラミングの経験がある読者がいる場合は、コメントでより合理的なスクリプトを共有してください。

PowerShellの例、curl.exeファイルは、スクリプトが実行されるディレクトリと同じディレクトリにある必要があります

 USER=user PASS=password for ($i=1; $i -lt 10; $i++) { .\curl.exe https://billing.ihor.ru/billmgr?authinfo=$USER:$PASS&addon_1101=20&addon_1103=1&addon_1104=1&addon_1110=1&addon_1791=4&enum_1112=21&enum_1106=25&agree=on&domain=$USER-$i.ru&ostempl= Centos-6.7-x86_64-minimal&period=1210&price=1100&autoprolong=1210&payfrom=neworder&func=vds.order.7&sok=ok" } 

Source: https://habr.com/ru/post/J305716/


All Articles