Ccmmutty logo
Commutty IT
0 pv2 min read

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

https://cdn.magicode.io/media/notebox/5b740de4-1ec1-41fc-8ccf-f234ced276b5.jpeg
カサレリア。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

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