ツールを作るために、国語辞典を検索する方法を探していました。
調べてみると「デ辞蔵」というサービスがありました。
SOAP版とREST版というのがあるものの、SOAP版の方がフル機能らしいので、SOAP版に挑戦してみます。
開発環境は、.NET C# (Visual Studio 2017)が希望です。
Web関係の開発は未経験なので、とりあえず、サンプルコードがないか検索検索...。
最終的にたどり着いた参照先は、以下の通り。
デ辞蔵Webサービス(公式サイト)
C#でSOAP呼び出しを行う
VB6でWebサービス(SOAP版API)を呼び出したいのだ!
ドンピシャの情報はないのだけれど、これらが最も役立ちました。
手順
ベースとなるアプリケーションの作成
Visual Studio 2017で、WPFアプリケーションのプロジェクトを作成
画面にボタンを追加
デ辞蔵サービスを追加
[ソリューションエクスプローラ]から、[サービス参照の追加]を選択
デ辞蔵公式サイトに書かれているサービスの定義を、[サービス参照の追加]ダイアログの[アドレス]の欄に張り付けて、[移動]ボタンを押下し、"~~サービスが見つかりました。"が表示されることを確認する。
[名前空間]欄は、任意の名前を入れる(ここはよく分かっていないけれど)
[サービス参照の追加]ダイアログ内の[詳細設定]ボタンを押下する
続けて[Web参照の追加]ボタンを押下し、出てきた[Web参照の追加]ダイアログの[URL]欄に、デ辞蔵公式サイトに書かれている「サービス稼働のURL」を入力し、URL入力欄の右側にある矢印ボタンを押下すると、下の大きな欄が更新されます。
そこで、「Web参照名」をとりあえず、ドットを含まない名前に直しました。(良く分からないけれど、試した結果)
そして、[参照の追加]ボタンを押下すると、ダイアログが閉じて、ソリューションエクスプローラ画面に、次のようなものが現れました。
辞書を利用するコードを作成
そして、次はコードを実装します。自分でコーディングしたのは、実行ボタン_Click()メソッドの中だけです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace DejizoSample
{
/// <summary>
/// MainWindow.xaml の相互作用ロジック
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void 実行ボタン_Click(object sender, RoutedEventArgs e)
{
MyDejizoWebRef.SOAPServiceV11 sOAPServiceV11 = new MyDejizoWebRef.SOAPServiceV11();
MyDejizoWebRef.DicInfo[] dicInfo = sOAPServiceV11.GetDicList("");
foreach (MyDejizoWebRef.DicInfo info in dicInfo)
{
MessageBox.Show(info.FullName);
}
}
}
}
実行ボタンを押下すると、
APIにアクセスして、使用可能な辞書名の一覧をメッセージボックスで表示できました。
さいごに
この記事は、本当に「やってみた」です。
知らないことばかりで苦労しましたが、できてみると、大したコード量もなかったのに驚きです。
なんか良く分からないでできているところもあるので、ご指導のコメントをぜひよろしくお願いします。