未提供参考文件，已跳过文档解析，直接根据用户描述生成工程。

未提供参考文件，已跳过文档解析，直接根据用户描述生成工程。


status


type


coding


开始


生成


最简单的


Python


工程


包含


一个


基于


Fast


API


的


Hello


World


服务


结构


清晰


依赖


简单


可直接


运行


status


path


code


gen


-r


uns


/c


ode


d


c


ffe


b


aa


dec


requirements


.txt


content


fast


api


\n


uv


icorn


p


ytest


htt


px


path


code


gen


-r


uns


/c


ode


d


c


ffe


b


aa


dec


README


.md


content


Simple


Hello


API


\n\n


一个


最简单的


Fast


单体


示例


工程


。\n\n


安装


依赖


bash


\n


pip


install


r


requirements


.txt


```\n\n


启动


服务


\n\n


uv


icorn


app


.main


re


load


port


\n


后


访问


http


/docs


查看


Sw


agger


文档


。\n\n


测试


\n\n


bash


p


ytest


tests


v


\n


```\n\n


API


接口


GET


返回


欢迎


信息


hello


name


个性化


问候


path


code


gen


-r


uns


/c


ode


d


c


ffe


b


aa


dec


/app


init


py


content


app


package


\n


path


code


gen


-r


uns


/c


ode


d


c


ffe


b


aa


dec


/app


/services


.py


content


服务


层


模块


提供


核心


业务


逻辑


\"\"\"\n\n


from


datetime


import


\n


typing


Dict


Any


\n\n\n


def


get


re


eting


(name


str


World


:\n


生成


个性化


问候


语


。\n\n


Args


name


被


者的


名字


默


认为


Returns


包含


语的


字符串


。\n


\"\"\"\n


return


f


Hello


!\"\n\n


\n


def


get


ystem


Dict


[str


Any


]:\n


获取


当前


系统


信息


使用


假


数据


模拟


）。\n\n


Returns


:\n


包含


信息的


字典


。\n


\"\"\"\n


now


datetime


.now


()\n


return


{\n


message


Hello


World


\",\n


timestamp


.is


o


format


(),\n


service


Simple


API


version


}\n


path


code


gen


-r


uns


/c


ode


d


c


ffe


b


aa


dec


/app


/main


.py


content


Fast


API


主


应用


入口


。\n\n


提供


简单的


Hello


World


服务


。\n


\"\"\"\n\n


from


fast


api


import


Fast


API


\n


app


.services


get


re


eting


ystem


\n\n


(\n


title


Simple


Hello


\",\n


description


一个


最简单的


Fast


API


单体


示例


工程


version


)\n\n\n


@app


.get


\")\n


async


def


root


():\n


根


路径


返回


欢迎


信息和


系统


信息


\"\"\"\n


return


get


ystem


()\n\n\n


@app


.get


hello


name


}\")\n


async


def


say


(name


str


):\n


根据


传入


的名字


返回


个性化


问候


。\n\n


Args


:\n


name


被


者的


名字


Returns


包含


语的


JSON


对象


。\n


\"\"\"\n


return


message


get


re


eting


(name


)}\n


path


code


gen


-r


uns


/c


ode


d


c


ffe


b


aa


dec


/t


ests


init


py


content


tests


package


\n


path


code


gen


-r


uns


/c


ode


d


c


ffe


b


aa


dec


/t


ests


/test


asic


.py


content


基础


测试


模块


核心


业务


逻辑


和


API


端点


\"\"\"\n\n


import


pytest


\n


from


htt


px


Async


Client


AS


G


IT


rans


port


app


.main


.services


get


re


eting


ystem


\n\n\n


class


Test


Services


:\n


服务


层


单元


测试


\"\"\"\n\n


def


test


(self


):\n


无


参数


时


返回


默认


问候


语


\"\"\"\n


result


get


re


eting


()\n


assert


Hello


World


!\"\n\n


def


test


(self


):\n


测试


传入


名字


时


返回


个性化


问候


语


\"\"\"\n


result


get


re


eting


Fast


API


\")\n


assert


Hello


!\"\n\n


def


test


ystem


ructure


(self


):\n


测试


系统


信息


返回


正确的


字段


结构


\"\"\"\n


info


get


()\n


assert


message


in


\n


timestamp


service


version


Hello


World


!\"\n


Simple


API


\"\n\n\n


@p


ytest


.mark


.as


yn


cio


class


Test


:\n


端点


集成


测试


\"\"\"\n\n


async


def


test


point


(self


):\n


根


路径


返回


正确的


系统


信息


\"\"\"\n


transport


AS


G


IT


rans


port


(app


app


)\n


async


with


Async


Client


base


http


test


as


client


:\n


response


await


.get


\")\n


assert


.status


\n


data


.json


()\n


message


Hello


World


!\"\n


timestamp


in


\n\n


async


def


test


hello


point


(self


):\n


测试


name


返回


正确的


问候


语


\"\"\"\n


transport


AS


G


IT


rans


port


(app


app


)\n


async


with


Async


Client


base


http


test


as


client


:\n


response


await


.get


hello


/P


ython


\")\n


assert


.status


\n


data


.json


()\n


message


Hello


Python


!\"\n


fastapi==0.104.1
uvicorn==0.24.0
pytest==7.4.3
httpx==0.25.2


# Simple Hello API

一个最简单的 FastAPI 单体示例工程。

## 安装依赖

```bash
pip install -r requirements.txt
```

## 启动服务

```bash
uvicorn app.main:app --reload --port 8000
```

启动后访问 http://127.0.0.1:8000/docs 查看 Swagger 文档。

## 测试

```bash
pytest tests/ -v
```

## API 接口

- `GET /` - 返回欢迎信息
- `GET /hello/{name}` - 返回个性化问候


# app package


"""服务层模块，提供核心业务逻辑。"""

from datetime import datetime
from typing import Dict, Any

def get_greeting(name: str = "World") -> str:
    """生成个性化问候语。

    Args:
        name: 被问候者的名字，默认为 "World"。

    Returns:
        包含问候语的字符串。
    """
    return f"Hello, {name}!"

def get_system_info() -> Dict[str, Any]:
    """获取当前系统信息（使用假数据模拟）。

    Returns:
        包含系统信息的字典。
    """
    now = datetime.now()
    return {
        "message": "Hello, World!",
        "timestamp": now.isoformat(),
        "service": "Simple Hello API",
        "version": "1.0.0",
    }


"""FastAPI 主应用入口。

提供简单的 Hello World API 服务。
"""

from fastapi import FastAPI
from app.services import get_greeting, get_system_info

app = FastAPI(
    title="Simple Hello API",
    description="一个最简单的 FastAPI 单体示例工程",
    version="1.0.0",
)

@app.get("/")
async def root():
    """根路径，返回欢迎信息和系统信息。"""
    return get_system_info()

@app.get("/hello/{name}")
async def say_hello(name: str):
    """根据传入的名字返回个性化问候。

    Args:
        name: 被问候者的名字。

    Returns:
        包含问候语的 JSON 对象。
    """
    return {"message": get_greeting(name)}


# tests package


"""基础测试模块，测试核心业务逻辑和 API 端点。"""

import pytest
from httpx import AsyncClient, ASGITransport
from app.main import app
from app.services import get_greeting, get_system_info

class TestServices:
    """服务层单元测试。"""

    def test_get_greeting_default(self):
        """测试无参数时返回默认问候语。"""
        result = get_greeting()
        assert result == "Hello, World!"

    def test_get_greeting_with_name(self):
        """测试传入名字时返回个性化问候语。"""
        result = get_greeting("FastAPI")
        assert result == "Hello, FastAPI!"

    def test_get_system_info_structure(self):
        """测试系统信息返回正确的字段结构。"""
        info = get_system_info()
        assert "message" in info
        assert "timestamp" in info
        assert "service" in info
        assert "version" in info
        assert info["message"] == "Hello, World!"
        assert info["service"] == "Simple Hello API"

@pytest.mark.asyncio
class TestAPI:
    """API 端点集成测试。"""

    async def test_root_endpoint(self):
        """测试根路径返回正确的系统信息。"""
        transport = ASGITransport(app=app)
        async with AsyncClient(transport=transport, base_url="http://test") as client:
            response = await client.get("/")
            assert response.status_code == 200
            data = response.json()
            assert data["message"] == "Hello, World!"
            assert "timestamp" in data

    async def test_hello_endpoint(self):
        """测试 /hello/{name} 返回正确的问候语。"""
        transport = ASGITransport(app=app)
        async with AsyncClient(transport=transport, base_url="http://test") as client:
            response = await client.get("/hello/Python")
            assert response.status_code == 200
            data = response.json()
            assert data["message"] == "Hello, Python!"


开始生成最简单的 Python 工程，包含一个基于 FastAPI 的 Hello World API 服务，结构清晰、依赖简单、可直接运行。


已写入文件：codegen-runs/codegen_0047d26c54d14ffe956b6aa2c9dec156/requirements.txt


已写入文件：codegen-runs/codegen_0047d26c54d14ffe956b6aa2c9dec156/README.md


已写入文件：codegen-runs/codegen_0047d26c54d14ffe956b6aa2c9dec156/app/__init__.py


已写入文件：codegen-runs/codegen_0047d26c54d14ffe956b6aa2c9dec156/app/services.py


已写入文件：codegen-runs/codegen_0047d26c54d14ffe956b6aa2c9dec156/app/main.py


已写入文件：codegen-runs/codegen_0047d26c54d14ffe956b6aa2c9dec156/tests/__init__.py


已写入文件：codegen-runs/codegen_0047d26c54d14ffe956b6aa2c9dec156/tests/test_basic.py


result


type


summary


工程


已


生成


完毕


以下是


完整


文件


清单


与


使用


说明


的文件


路径


requirements


.txt


Python


依赖


fast


api


u


vic


orn


pytest


htt


px


README


.md


项目


说明


文档


含


安装


启动


测试


方式


app


init


py


包


初始化


文件


/main


.py


Fast


API


主


应用


入口


定义


GET


和


hello


name


两个


接口


app


/services


服务


层


提供


get


re


eting


ystem


业务


逻辑


使用


假


数据


tests


init


py


包


初始化


文件


/test


asic


.py


基础


测试


覆盖


服务


层


单元


和


API


端点


集成


运行


方式


bash


进入


工程


目录


cd


code


gen


-r


uns


/c


ode


d


c


ffe


b


aa


dec


安装


依赖


pip


install


r


requirements


.txt


启动


服务


开发


模式


热


重


载


uv


icorn


app


.main


re


load


port


访问


API


http


返回


Hello


World


系统


信息


hello


/P


ython


Python


/docs


Sw


agger


交互


式


文档


测试


方式


bash


p


ytest


tests


v


会


执行


服务


层


单元


验证


get


re


eting


默认


参数


带


参


调用


以及


ystem


返回


结构


API


集成


测试


使用


htt


px


的


Async


Client


模拟


HTTP


请求


验证


GET


和


hello


name


的正确


响应


无需


数据库


Redis


等


外部


依赖


开


箱


即


用


result


工程已生成完毕。以下是完整文件清单与使用说明：

### 生成的文件

| 文件路径 | 说明 |
|---|---|
| `requirements.txt` | Python 依赖：fastapi, uvicorn, pytest, httpx |
| `README.md` | 项目说明文档（含安装、启动、测试方式） |
| `app/__init__.py` | app 包初始化文件 |
| `app/main.py` | FastAPI 主应用入口，定义 `GET /` 和 `GET /hello/{name}` 两个接口 |
| `app/services.py` | 服务层，提供 `get_greeting()` 和 `get_system_info()` 业务逻辑（使用假数据） |
| `tests/__init__.py` | tests 包初始化文件 |
| `tests/test_basic.py` | 基础测试，覆盖服务层单元测试和 API 端点集成测试 |

### 运行方式

```bash
# 1. 进入工程目录
cd codegen-runs/codegen_0047d26c54d14ffe956b6aa2c9dec156

# 2. 安装依赖
pip install -r requirements.txt

# 3. 启动服务（开发模式，热重载）
uvicorn app.main:app --reload --port 8000

# 4. 访问 API
#    http://127.0.0.1:8000/           → 返回 Hello World 系统信息
#    http://127.0.0.1:8000/hello/Python → 返回 "Hello, Python!"
#    http://127.0.0.1:8000/docs        → Swagger 交互式文档
```

### 测试方式

```bash
pytest tests/ -v
```

测试会执行：
- **服务层单元测试**：验证 `get_greeting()` 默认参数、带参调用，以及 `get_system_info()` 返回结构
- **API 集成测试**：使用 httpx 的 AsyncClient 模拟 HTTP 请求，验证 `GET /` 和 `GET /hello/{name}` 的正确响应

无需数据库、Redis 等外部依赖，开箱即用。


# 1. 进入工程目录
cd codegen-runs/codegen_0047d26c54d14ffe956b6aa2c9dec156

# 2. 安装依赖
pip install -r requirements.txt

# 3. 启动服务（开发模式，热重载）
uvicorn app.main:app --reload --port 8000

# 4. 访问 API
#    http://127.0.0.1:8000/           → 返回 Hello World 系统信息
#    http://127.0.0.1:8000/hello/Python → 返回 "Hello, Python!"
#    http://127.0.0.1:8000/docs        → Swagger 交互式文档


end