Skip to content

Posts

Figma for UIデザイン

先日、アドビはFigmaを買収する意向を表明しました。共同クリエイティビティは新時代へというニュースを見て、セールで買って積んであったAmazon.co.jp: Figma for UIデザイン アプリ開発のためのデザイン、プロトタイプ、ハンドオフ eBook : 沢田 俊介: 本を急いで読んだ。 一通りのFigmaでできることを知ること Read more

OpenAPIで生成したサーバーのテスト

よくわからない。 ググるとhttptest使う例が良く出てくるけど、型が合わなくて組み立てられない。 仕方ないので、APIサーバー起動してhttp.NewRequestWithContextで叩いて結果を見るという、E2Eっぽいテストに落ち着きそう。

chiでproxy

grpc-gatewayでgRPCとREST両対応のサーバを作る | フューチャー技術ブログのサンプルでmux.Handle("/docs/", docsProxy)となっているところを、go-chi/chi: lightweight, idiomatic and composable router for building Go HTTP servicesを使っているのでrouter.Handle Read more

proto

昨日のエラーは、grpc-ecosystem/grpc-gateway: gRPC to JSON proxy generator following the gRPC HTTP specにあるようにbuf.yamlに deps: - buf.build/googleapis/googleapis を追記してbuf mod updateを実行したら直ったような気がする。 気がする、というのは他にもprotoファイルをダウンロードしてきたりとかいろいろやっていて何が決定打だ Read more

proto

proto定義何もわからない。。 REST用のパスを定義するために option (google.api.http) = { get : "/example-messages/{id}" }; といった定義が必要で、これを使うには import "google/api/annotations.proto"; が必要らしいという理解なのだけど、これをビルドしようとすると event.proto:6:1: Import "google/api/annotations.proto" was not found or had errors. というエラーが出てしまう。 こういうところで躓くの嫌すぎる。

protoをマスターにする

protoをAPIスキーマのマスターにしようとした場合、既存のOpenAPIで用意していたUIとかどうしよう、ということになるけれど、OpenAPI->gRPCとは違って逆の変換はたくさんツールがあることは調査済み。 全体の作りとしてはgrpc-gatewayでgRPCとREST両対応のサーバを Read more

OpenAPIからgRPCへの移行

今あるOpenAPI用の定義yamlファイルからgRPC用のprotoファイルが生成できないかなと思い、検索したら良さそうなものが見つかった。 nytimes/openapi2proto: A tool for generating Protobuf v3 schemas and gRPC service definitions from OpenAPI specifications https://github.com/umemak/eventsite_go/blob/main/openapi.yml でやってみた。 $ go install github.com/NYTimes/openapi2proto/cmd/openapi2proto $ openapi2proto -spec openapi.yml -annotate syntax = "proto3"; package eventsite; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; service EventsiteService { // Get all events. rpc GetEvents(google.protobuf.Empty) returns (google.protobuf.Empty) { option (google.api.http) = { get: "/events" }; } // Create event. rpc PostEvents(google.protobuf.Empty) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/events" }; } } s Read more

gRPCを触ってみる

gRPCを触ってみたくなったので、gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも? | フューチャー技術ブログをやってみる。 frontendでnpm installするところでgitエラーになってしまう。 $ npm install --save-dev bufbuild/protoc-gen-connect-web bufbuild/protoc-gen-es npm ERR! code 128 npm ERR! An unknown git error occurred npm ERR! command git --no-replace-objects ls-remote ssh://git@github.com/bufbuild/protoc-gen-connect-web.git npm ERR! git@github.com: Permission denied (publickey). npm ERR! fatal: Could not read from remote repository. npm Read more

Goで設定を良い感じに処理する方法

コマンドラインで引数を処理する順番は以前調べたことがあるのだけど、これをいい感じに処理してくれるGoのライブラリが欲しい気がする。 まず設定ファイルを読み、環境変数が設定されていれば上書き、コマンドラインで指定されていればさらに上書き joho/godotenv: A Go port of Ruby’s dotenv library (Loads environment variables from .env.) Netflix/go-env: a golang library to manage environment variables caarlos0/env: A simple and zero-dependencies library to parse environment variables into structs. ilyakaznacheev/cleanenv: Read more

TypeScriptとReact/Next.jsでつくる実践Webアプリケーション開発、読了

途中から写経するのあきらめて流し読みした。 長くて(フォント的に)読みにくいコードを見るのがつらすぎたので。。 CSSの書き方は、こっちのスタイルではなくてファイル分けるほうが自分には合っていそう。 テストの書き方など、あとで見返すと参考になりそうなことはたくさんあった。 Kindle版のフォントは何とかな Read more