前回はエックスサーバーにMecabをインストールしてASP.Net Core で形態素解析の処理をおこないました。今回は他のページからでもこれを利用できるようにします。そのためにはこれをAPIとして公開します。そのあとJavaScriptを使って形態素解析をしてその結果を表示させます。

単純なWeb APIを作る

まずはASP.NET Coreでもっとも単純なWeb API を作るところからはじめます。

文字列をPostしたらそれをそのまま返すAPIを作ります。

まずApiクラスを定義します。

C#

Program.cs

実際に別のコンソールアプリケーションを作成して動作テストをしてみます。

Mecabで形態素解した結果を取得できるAPIを公開する

本番はここからです。Mecabで解析した結果を取得できるようにします。

Program.cs

別のコンソールアプリケーションを作成して動作テストをしてみます。

実行結果

ところで上記はローカルで実験したときの結果です。サーバー上で実行すると改行は\r\nではなく\nになっています。

自作APIで形態素解析をする

これをweb上で使ってみましょう。

index.html

クロスオリジン要求を有効にする

ところでこのままでは処理はおこなわれません。

クロスオリジン要求をブロックしました: 同一生成元ポリシーにより、http://localhost:5000/Mecab-Api にあるリモートリソースの読み込みは拒否されます

上のようなエラーが出ます。そこでこれを解決するためにクロスオリジン要求 (CORS) を有効にする処理をおこないます。

Program.cs

クライアントサイドにおける処理

[クリア]ボタンを押したらテキストエリアにある文字列をクリアするとともに表示されている形態素解析の結果を消去します。

[解析]ボタンを押したらテキストエリアにある文字列を取得して、これをJSONに変換してAPIのエンドポイントにPost