無保証です。
コードはとても小さいので、詳しくは読んでください。
できるよりできないことの方が多いので、できることを書きます。
やりたいこと ただし、通常の取引画面から行えるので、やる気は少なめ
やらなさそうなこと
https://kabu.com/company/lp/lp90.html au カブコム証券での API インターフェイスです。
API 使用者はクライアントソフト(kabu ステーション)を PC で起動し、そのクライアントソフトの起動・ログインで証券会社への接続を確立します。 API はこのクライアントソフトへの接続して利用します。
つまり、このプログラムで用いられる API Key は、手元の PC で動作している kabu ステーションへの接続のためのものです。
このテストコードは、上の仕組みを前提としています。html 自身はどこでホストしても構いませんが、API は localhost へと通信しています。 (同じ PC がホストしているとは限らないため CORS としています)
OpenAPI の定義ファイルはありますが、TypeScript の良さが感じられるコードが出力されなさそうなので、使っていません。 手作業で定義したものが lib/api にあります。意外と分量が増え、後悔しています。
import { browser } from '$app/env';
からの if (browser)
で分岐しています。adapter-static を使いました。
最初混乱したのですが、.svelte-kit/output/
ではなく、build
ディレクトリに出力されます。ディレクトリとドキュメント読んでればすぐ気がつくのにね...。
小さい httpd ないかな、と思ってぐぐってたら
https://devopsdirective.com/posts/2021/04/tiny-container-image/
面白い記事でした。
https://github.com/nemasu/asmttpd
アセンブラでかかれた httpd。6.3kB の Image すごすぎて笑う。
npm run build
した後、docker image をビルドすると SSG されたものを動作させるコンテナが生成されます。
ghcr.io/bugfire/kabulte:latest