59API

← Retour aux guides

Go、Rust、Java 调用 LLM API 的 59API 实战

API · ZH · 2026-08-04

先把统一入口搭好

对于 Go、Rust、Java 混合技术栈,最省事的方式不是分别维护不同厂商 SDK,而是先接一个兼容 OpenAI 的中转层。59API 的基础地址是 https://api.59api.com,拿到密钥后,改一个 endpoint 就能同时调用 Claude 和 GPT。它按量计费、价格低,而且使用的是原生官方质量模型,不做降级;如果你在做 PoC、内部工具或多语言服务,这种成本优势非常明显。另一个容易被忽略的点是,59API 兼容 Claude Code、Codex 以及任意 OpenAI SDK,迁移成本很低。

第一步:统一环境变量和 Base URL

建议先把密钥放到环境变量里,再把 Base URL 指向 59API。多数 OpenAI 兼容 SDK 都能直接使用;如果你的库会自动拼接版本路径,就填 https://api.59api.com/v1,否则就按文档要求使用基础地址。请求结构上,核心就是 Authorization: Bearer 你的密钥,再加上 model 和 messages。

建议的检查清单:

Go:用现成 SDK 快速出结果

Go 示例(github.com/sashabaranov/go-openai)

package main import ( "context" "fmt" "os" openai "github.com/sashabaranov/go-openai" ) func main() { client := openai.NewClient(os.Getenv("API_KEY")) client.BaseURL = "https://api.59api.com/v1" resp, err := client.CreateChatCompletion(context.Background(), openai.ChatCompletionRequest{ Model: "gpt-4o-mini", Messages: []openai.ChatCompletionMessage{ {Role: openai.ChatMessageRoleUser, Content: "把下面一句话改写得更像产品文案:我们的系统支持多语言接入。"}, }, }) if err != nil { panic(err) } fmt.Println(resp.Choices[0].Message.Content) }

如果你想切到 Claude,只需要把 Model 换成 59API 控制台里的 Claude 系列模型名即可。Go 端最常见的坑是 Base URL 没配对,或者忘了把密钥放进环境变量。

Rust:直接走 HTTP 或 OpenAI 兼容客户端

Rust 示例(reqwest + serde_json)

use reqwest::Client; use serde_json::json; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let client = Client::new(); let body = json!({ "model": "gpt-4o-mini", "messages": [ {"role": "user", "content": "给我一个适合 Rust Web 服务的日志初始化建议"} ] }); let resp: serde_json::Value = client .post("https://api.59api.com/v1/chat/completions") .bearer_auth(std::env::var("API_KEY")?) .json(&body) .send() .await? .json() .await?; println!("{}", resp["choices"][0]["message"]["content"]); Ok(()) }

Rust 里直接用 HTTP 的好处是最透明,便于排查鉴权、重试和流式输出;如果你喜欢更强类型,也可以换成兼容 OpenAI 的 Rust SDK,调用方式本质一样。

Java:适合企业项目的稳定写法

Java 示例(OkHttp)

import okhttp3.*; public class Main { public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); MediaType JSON = MediaType.get("application/json; charset=utf-8"); String json = "{\"model\":\"gpt-4o-mini\",\"messages\":[{\"role\":\"user\",\"content\":\"用一句话解释什么是向量检索\"}]}"; Request request = new Request.Builder() .url("https://api.59api.com/v1/chat/completions") .addHeader("Authorization", "Bearer " + System.getenv("API_KEY")) .post(RequestBody.create(json, JSON)) .build(); try (Response response = client.newCall(request).execute()) { System.out.println(response.body().string()); } } }

Java 项目通常更在意可维护性和成本可控。59API 的低价按量计费特别适合后端服务、客服机器人、报表生成、知识库问答这类持续调用场景;你可以先用 GPT 做基线,再切 Claude 对比质量和延迟。

实战建议:先测通,再做优化

如果你正准备把 LLM 接进 Go、Rust 或 Java 项目,又希望尽量压低试错成本,可以先注册 59API 试跑一个小功能:改写文本、摘要生成、客服回复都很合适。跑通后,再决定是继续按量使用,还是把 Claude/GPT 能力扩展到更多服务里。

Tarifs · Docs

Prêt à commencer ?

Connectez Claude et GPT en quelques minutes aux prix les plus bas, sans bridage. Inscrivez-vous pour votre clé API.

Inscription gratuite