arrow_backRetour aux issues
NUTFes/quizApp
#78
Débutant
Ouvrirarrow_forward
Débutant
Ouvrirarrow_forward
Débutant
Ouvrirarrow_forward
【初心者T2】GET /images/... で画像を配信する
ecoDébutant
good first issue
backend
descriptionDescription
**バックエンドの最初の1本。** まず全員がこれで「書く → 登録する → curl で叩く」の1周を体験します。
> 📘 **先に読むもの**: [`dev_policy/初心者タスク共通の実装手順書.md`](../blob/main/dev_policy/初心者タスク共通の実装手順書.md)
> 環境の起動・ブランチの切り方・CI の通し方・PR の出し方は全部そこにまとまっています。この Issue には**このタスク固有のこと**だけ書いてあります。
## ①ゴール
サーバーに置いた画像ファイルを `GET /images/ファイル名` で配信する(**認証なし**)。→ [`API仕様書.md`](../blob/main/docs/実装要件/API仕様書.md) **§6**
```
backend/static/images/test.png を置く
↓
http://localhost:3000/images/test.png がブラウザで表示される
```
## ②触ってよいファイル
- `backend/internal/platform/router.go` — 静的配信を**1行**足す
- `backend/static/images/` — フォルダを作る(`.gitkeep` を置く)
## ③写経元・参考
- `backend/internal/platform/router.go` の既存の `r.GET("/api/health", ...)` の並び
- Gin の静的配信: https://gin-gonic.com/ja/docs/routing/ の `router.Static`
## ④動作確認方法
```bash
mise run up
# 適当な画像を backend/static/images/test.png に置く
curl -I http://localhost:3000/images/test.png # 200 と Content-Type: image/png
```
- [ ] ブラウザで `http://localhost:3000/images/test.png` を開くと画像が表示される
- [ ] **認証ヘッダ無しで見える**こと(参加者のスマホから見えないと困る)
- [ ] 存在しないファイル名は 404
- [ ] `curl -i http://localhost:3000/api/health` が 200 のまま(既存を壊していない)
## 💡 このタスクで学ぶこと
**コードはほとんど書きません。** 目的は「1行足して、再ビルドされて、curl で確認できる」という開発の1周を体験することです。
引っかかりやすいのは次の2つです。
- **保存してもすぐ反映されない** … コンテナの中で air が再ビルドしています。数秒待つか、`docker compose logs -f backend` を開いて `running...` を待ってください。`Connection reset by peer` はビルド中のサインです
- **画像をコミットしてよいか** … `test.png` は動作確認用なのでコミット不要です。**フォルダだけ `.gitkeep` でコミット**してください
## ⚠️ 注意
**本番の問題画像はこの Issue でコミットしないこと。** このリポジトリは public です。当日使う画像は本番サーバーに直接置きます。
Issues similaires
MyZubster-Ecosystem/myzubster
star1
Poids du dépôt moyen
[BOUNTY · OPEN FOR CONTRIBUTORS] Crea il fumetto visuale “Come funziona MyZubster” — 300 MYZ proposed
# 🎨 Bounty — Crea il fumetto visuale “Come funziona MyZubster” ## Status **OPEN FOR CONTRIBUTORS / PROPOSED** > Quest…
JavaScript
documentation
good first issue
StudentSuite/awesome-study-resources
star8
Poids du dépôt léger
Psychology subsection has only 4 entries
The `### Psychology` subsection under By Subject currently has only 4 entries (CrashCourse, Fiveable, Seneca Learning, …
JavaScript
good first issue
content
StudentSuite/awesome-study-resources
star8
Poids du dépôt léger
Foreign Languages subsection has only 4 entries
The `### Foreign Languages` subsection under By Subject currently has only 4 entries (Duolingo, italki, Language Reacto…
JavaScript
good first issue
content