従業員15名の製造業で、受注データをExcelに手入力している営業担当の方。Webサイトの問い合わせフォームの内容をメールで受け取り、別のシステムへ毎日転記している事務スタッフの方。社内のタスク管理をチャットツールと手書きメモで対応している10人規模のマーケティング会社の方。
そういったデジタル化の悩みを抱えながら、「システムを作るには開発費が高い」「外注すると50〜100万円かかる」と諦めていませんか。
この記事では、Claude Code(クロードコード、AIがプログラムを書いてくれるツール)を使って、業務の「データ受付窓口」を自分で作る方法を解説します。プログラミング経験ゼロでも、手順通りに進めれば1〜2時間で動くものが完成します。
図: Claude Codeで業務システムを作る全体像(画像生成待ち)
まず知っておきたい「API」とは何か
この記事で扱う「API(エーピーアイ)」という言葉について、最初に説明しておきます。
API(Application Programming Interfaceの略、アプリケーション同士がデータをやり取りする窓口のこと)とは、システムとシステムをつなぐ「橋渡し役」です。
身近な例で説明します。飲食店の注文システムで、お客さんがタブレットで料理を選ぶと、厨房のモニターに自動で注文が表示されます。このとき、タブレットアプリと厨房のシステムを橋渡ししているのがAPIです。
あなたの会社のWebサイトにお問い合わせフォームがあるとします。このフォームに入力された情報を、自動でCRM(シーアールエム、顧客管理システムのこと)やGoogleスプレッドシートに転送するとき、その橋渡し役として機能するのがAPIです。
これまでこういった仕組みを作るには、エンジニアへの外注が必要でした。規模によっては50〜100万円の費用と1〜3か月の開発期間がかかることも珍しくありません。Claude Codeを使えば、この開発をあなた自身が行えます。
Claude Codeで作れるものの例
今回の手順を応用すれば、次のようなシステムが作れます。いずれも、社内で実際に役立てられる業務ツールです。
営業・マーケティング向けには、問い合わせフォームのデータを自動収集・管理するシステム、商談進捗を記録・確認する社内ツール、メールマガジンの配信リスト管理などがあります。
経理・バックオフィス向けには、経費申請を一元管理するシステム、請求書の発行状況を追跡するツール、在庫の入出庫記録などが作れます。
製造・現場向けには、製品の検査記録を蓄積するシステム、設備のメンテナンス履歴管理、作業指示書の発行・進捗確認なども対応できます。
今回の記事では「タスク管理API」を例に手順を説明しますが、同じ流れを他の業種・用途に当てはめることができます。10名規模のマーケティング会社で、営業担当者がスマホからタスクを登録・確認できる社内ツールの裏側を作る、というイメージで進めましょう。
準備するもの
作業を始める前に、次のものを用意します。費用はほぼかかりません。
Claude Code(クロードコード)はAnthropicの公式ツールです。Claude Proプラン(月額$20、約3,000円)に加入すると使えます。
Node.js(ノードジェイエス、プログラムを動かすためのエンジン)はnodejs.orgから無料でダウンロードできます。インストールは画面の指示に従うだけで完了します。
テキストエディタは VS Code(ビジュアルスタジオコード)という無料ソフトを使うと、コードが見やすく表示されます。メモ帳でも代用可能です。
インストールが完了したら、ターミナル(ターミナルとは、コンピューターにテキストで命令を入力する画面のことです。MacではTerminal.app、WindowsではPowerShellを使います)を開いて、次のコマンドをそのまま貼り付けます。
mkdir my-task-api
cd my-task-api
claude
これでClaude Codeとの対話が始まります。
図: Claude Codeを使った業務システム構築の流れ(画像生成待ち)
ステップ1: 全体像をClaude Codeに伝える(10分)
Claude Codeへの指示は、できるだけ具体的に書くのがコツです。「いい感じのシステムを作って」という指示では、求めているものが作られません。
次の文章を、Claude Codeにそのまま貼り付けてみてください。
タスク管理REST APIを作成してください。
技術: Hono(軽量なウェブサーバーライブラリ)、TypeScript(型安全なプログラミング言語)、SQLite(軽量なデータベース)
必要な機能:
- POST /tasks: タスクを新規作成
- GET /tasks: タスク一覧を取得
- PATCH /tasks/:id: 特定のタスクを更新
- DELETE /tasks/:id: 特定のタスクを削除
- Bearer Token認証(環境変数API_TOKENで設定するパスワード)
- Zodによる入力バリデーション
最初にpackage.jsonとtsconfig.jsonを作成してください。
Claude Codeはこの指示に基づいて、プロジェクトの骨格となるファイルを自動で生成します。途中で「このパッケージ(プログラムの部品)をインストールしていいですか?」という確認が出ます。内容を軽く確認してからYesを選んでください。
この段階で生成されるのは、家の建設で言えば「基礎工事と骨組み」の部分です。まだ中身は空ですが、全体の構造が決まります。
ステップ2: データの保存先を設計する(10分)
次に、どのデータをどう保存するかを指定します。この設計は後から変更が難しいため、最初に丁寧に決めます。
db/schema.sqlを作成してください。
tasksテーブルの定義:
- id: タスクID(自動生成)
- title: タスクのタイトル(必須、200文字以内)
- status: 状態(todo=未着手、doing=対応中、done=完了の3種類のみ)
- created_at: 作成日時
- updated_at: 最終更新日時
データベースを初期化するスクリプトも src/db/migrate.ts に作成してください。
ここで指定する「列(カラム、テーブルの横方向の項目のこと)」は、業種・用途に合わせて変更してください。受注管理であれば「顧客名」「商品名」「金額」「受注日」など、経費管理であれば「申請者」「金額」「カテゴリ」「申請日」などを指定します。
Claude Codeはこの指示から、実際に動くデータベース定義ファイルを生成します。WALモード(ダブリューエーエルモード、データベースを高速化する設定)やインデックス(データ検索を速くする設定)といった専門的な最適化設定も自動で含めてくれます。生成されたかどうか不安なときは「WALモードとインデックスは含まれていますか?」と確認するだけで大丈夫です。
ステップ3: アクセス制限(認証)を設定する(10分)
社内ツールであっても、インターネット上に公開する場合は、誰でもアクセスできる状態は危険です。パスワード認証の仕組みを追加します。
src/middleware/auth.tsを作成してください。
- Authorizationヘッダーに「Bearer パスワード文字列」の形式でトークンを受け取る
- 環境変数API_TOKENの値と一致しない場合は401エラーを返す
- タイミング攻撃への対策としてcrypto.timingSafeEqualを使用すること
タイミング攻撃(タイミングこうげき、パスワードを総当たりで試す際に応答時間の微妙な差から正解を推測するサイバー攻撃の一種)への対策は、セキュリティの基本です。Claude Codeは自動でこの対策を含めてくれますが、生成されたコードに「timingSafeEqual」という文字列が含まれているかを確認してください。
含まれていない場合は「長さチェックとtimingSafeEqualを使った認証コードに修正してください」と指示すれば修正されます。
セキュリティに関わる箇所は、生成後に必ず目視確認することをお勧めします。もし気になる箇所があれば「このコードは安全ですか?」とClaude Codeに質問するだけで、解説してくれます。
ステップ4: 本体機能を実装する(15分)
認証の仕組みができたら、本体の機能を実装します。
src/routes/tasks.tsにCRUD操作を実装してください。
- すべてのエンドポイントにauthミドルウェアを適用
- 入力バリデーション失敗時は400エラーと詳細メッセージを返す
- 存在しないIDへのアクセスは404エラーを返す
CRUD(クラッド)とは、データ操作の基本4種類のことです(Create=作成、Read=読み取り、Update=更新、Delete=削除)。あらゆる業務データ管理システムは、この4つの操作の組み合わせで成り立っています。
ここでClaude Codeが生成するコードには、SQLインジェクション(SQLインジェクションとは、不正な命令をデータベースに送り込むサイバー攻撃の一種)への対策が自動で含まれています。コードを見たとき、データベースへの命令文に「?」という記号が使われていれば対策済みのサインです。
ステップ5: 動作テストを書く(10分)
機能が完成したら、正しく動くかを自動で確認するテストを作ります。
src/routes/tasks.test.tsをVitestで作成してください。
確認内容:
- タスクの作成→一覧取得→更新→削除の一連の流れ
- 認証なしでアクセスした場合に401が返ること
- 必須項目が空の場合に400が返ること
- 存在しないIDへのアクセスで404が返ること
テスト用データベースはインメモリ(:memory:)を使ってください。
Vitest(バイテスト、プログラムの動作を自動確認するツール)が「PASS」と表示されれば、機能が正しく動いています。テストを先に書く習慣をつけると、後から機能を追加・変更したときに、既存の機能が壊れていないかを自動で確認できます。
クラウドへの公開と費用感
完成したシステムをインターネット上に公開するには、クラウドサービス(クラウドサービスとは、自社でサーバーを持たずにインターネット経由でシステムを動かせるサービスのこと)を使います。
Cloudflare WorkersにデプロイするためのWranglerの設定ファイル(wrangler.toml)を作成してください。
API_TOKENはCloudflareのシークレット機能を使って設定してください。
図: 主要クラウドサービスの料金と特徴比較(画像生成待ち)
主要なクラウドサービスの選択肢と費用感を整理します。
Cloudflare Workersは、月100万リクエストまで無料で使えます。有料プランは月$5(約750円)からです。世界中の拠点から高速に応答するため、社内外どちらの用途にも向いています。セットアップが簡単という点も魅力です。
Fly.ioは、小規模なアプリなら実質無料で使えます。データベースを別途持てるため、より複雑な構成を作りたい場合に向いています。
Vercelは、個人や小規模チームは無料で使えます。Next.js(ネクストジェイエス、Webアプリを作るためのフレームワーク)との相性が良く、Webサイトと合わせて管理したい場合に便利です。
社内ツールの規模であれば、無料枠内で運用できる場合がほとんどです。月間1,000〜10,000件程度のリクエスト量であれば、Cloudflare Workersの無料枠で十分まかなえます。
非エンジニアがつまずきやすいポイントと対処法
Claude Codeを使って開発を進める中で、非エンジニアの方がよくつまずくポイントがあります。事前に知っておくと、スムーズに進めやすくなります。
一度に大きな指示を出しすぎる問題があります。「すべての機能を一気に作って」という指示は、Claude Codeが途中で止まったり、不完全なコードを生成する原因になります。機能を小さく分割して、一つずつ確認しながら進めるのが得策です。「まずデータ保存だけ」「次に認証を追加」のように段階的に進めることで、修正コストが大幅に下がります。
エラーが出たときは、エラーメッセージをそのままClaude Codeに貼り付けてください。多くの場合、自動で修正方法を提案してくれます。「このエラーの意味を日本語で説明してください」と付け加えると、原因も理解できます。エラーが出ることは当然のことで、Claude Codeとの往復作業の中で解決できます。
セキュリティの確認は人間が行う必要があります。認証、データ保存、外部からの入力処理など、セキュリティに関わる箇所は生成後に「このコードにセキュリティ上の問題はありますか?」とClaude Codeに聞いてみてください。問題があれば指摘してくれますし、問題がなければ安心して進められます。
コードが理解できないときは「このコードを初心者向けに日本語で説明してください」と依頼すれば丁寧に解説してくれます。少しずつ理解を深めながら進めることが、長期的にはスキルアップにつながります。最初から全部理解しようとする必要はありません。
まとめ
Claude Codeを使えば、エンジニアでなくてもデータを管理する仕組み(API)を1〜2時間で構築できます。外注すると50〜100万円かかるような開発が、月額約3,000円のClaude Pro費用だけで完成します。
重要な役割分担を覚えておいてください。「何を作るか(要件定義)」「何を保存するか(データ設計)」「セキュリティの最終確認」はあなたが行います。「どう作るか(コーディング)」はClaude Codeに任せます。
今回のタスク管理APIは、そのまま受注管理、問い合わせ管理、経費管理、在庫管理など、あらゆる「データを管理する業務」に応用できます。まずは社内で最もシンプルなデータ管理の仕組みから試してみてください。小さな成功体験を積み重ねることが、業務DXへの最短ルートです。




