# `LibOss.Core.RequestBuilder`
[🔗](https://github.com/tt67wq/lib-oss/blob/main/lib/lib_oss/core/request_builder.ex#L1)

请求构建模块，负责统一的请求构建逻辑、认证处理和URL构建

# `add_headers`

```elixir
@spec add_headers(LibOss.Model.Request.t(), list()) :: LibOss.Model.Request.t()
```

添加请求头到请求

## 参数
- request: 请求结构
- headers: 请求头列表

## 返回值
- 更新后的请求结构

# `add_query_params`

```elixir
@spec add_query_params(LibOss.Model.Request.t(), map()) :: LibOss.Model.Request.t()
```

添加查询参数到请求

## 参数
- request: 请求结构
- params: 查询参数

## 返回值
- 更新后的请求结构

# `add_sub_resources`

```elixir
@spec add_sub_resources(LibOss.Model.Request.t(), list()) :: LibOss.Model.Request.t()
```

添加子资源到请求

## 参数
- request: 请求结构
- sub_resources: 子资源列表

## 返回值
- 更新后的请求结构

# `build_base_request`

```elixir
@spec build_base_request(atom(), binary(), binary(), keyword()) ::
  LibOss.Model.Request.t()
```

构建基础请求结构

## 参数
- method: HTTP方法
- bucket: 存储桶名称
- object: 对象名称
- opts: 可选参数

## 返回值
- 请求结构

# `build_host`

```elixir
@spec build_host(binary(), binary(), binary()) :: binary()
```

构建主机名

## 参数
- host: 指定的主机名
- bucket: 存储桶名称
- endpoint: OSS端点

## 返回值
- 完整的主机名

# `build_http_request`

```elixir
@spec build_http_request(LibOss.Model.Config.t(), LibOss.Model.Request.t()) ::
  LibOss.Model.Http.Request.t()
```

构建HTTP请求

## 参数
- config: 配置信息
- req: OSS请求结构

## 返回值
- HTTP请求结构

# `build_path`

```elixir
@spec build_path(binary(), list()) :: binary()
```

构建请求路径

## 参数
- object: 对象名称
- sub_resources: 子资源参数

## 返回值
- 完整的请求路径

# `set_body`

```elixir
@spec set_body(LibOss.Model.Request.t(), binary()) :: LibOss.Model.Request.t()
```

设置请求体

## 参数
- request: 请求结构
- body: 请求体内容

## 返回值
- 更新后的请求结构

---

*Consult [api-reference.md](api-reference.md) for complete listing*
