Magicode logo
Magicode
0
2 min read

V言語で超簡単なAPIサーバを作る。part.1

カサレリア。katzenです。

お久しぶりの方、はじめましての方、どうぞよろしくお願いいたします。

今回は、予告通りAPIサーバを作りたいと思います。

プログラムを学ぶときにWebにふれることが多いと思います。 V言語もWebに絡んでいくことで広まっていくと思いますので、超簡単なAPIサーバを作ります。

軽く大枠を決めましょう。

  1. 起動すると指定ポートでListenする。
  2. 書き込みなどは行わず参照のみ。(Not RESTful)
  3. HTTPプロトコルで通信を行う。GET only
  4. ルーティングによりJsonを返す。
  5. パラメータを指定して、Jsonに埋め込める。

こんな感じでどうでしょうか。

早速作っていきましょう。

まず、ライブラリがないか探します。大抵自分が思い浮かぶより先に誰かが作っているはずです。

そしてプログラムの場合、結構 awesome があります。

ありました。

ドキュメントの内容や最終更新日を見る限り

を使うのが良さそうです。一部PreAlphaらしいですが。

早速サンプルをもとに最小のサーバを書いてみましょう。

// server.v
import vweb

struct App{
  vweb.Context
}

fn main() {
  vweb.run(&App{}, 8080)
}

fn (mut app App) index() vweb.Result {
        return app.text('index!')
}

細かい内容は置いといて、なんとなくわかりますでしょうか。

8080ポートで待ち受けて、indexに GETリクエストがある場合、"index!"を返すプログラムです。

起動してみます。

$ v run server.v
# [Vweb] Running app on http://localhost:8080/

こんな感じでサーバが起動しましたでしょうか。

私はChromebookのlinuxで開発しているのですが、 openssl/rand.h関連のエラーが出て起動できませんでした。

検索すると2021年1月の記事が出てきました。私のです。 ありがとう私。

改めてMagicodeでも解決法を書いておきます。 →こちら

さて、無事起動できたらブラウザで http://localhost:8080 へアクセスすると、"index!"と表示されましたでしょうか。

もう目的の半分は達成ですね。

  1. 起動すると指定ポートでListenする。

8080ポートで待ち受け

  1. 書き込みなどは行わず参照のみ。(Not RESTful)
  2. HTTPプロトコルで通信を行う。GET only

GETリクエスト対応 indexアクセスで値を返せる。

あとはJsonやパラメータの扱いを残すのみです。簡単!

新たに超簡単なAPIサーバを作るシリーズを開始しました。

次回「V言語で超簡単なAPIサーバを作る part.2」見てください!k

Discussion

コメントにはログインが必要です。