59API

← Volver a las guías

Go、Rust、Java 接入大模型 API:59API 十分钟上手指南

API · ZH · 2026-10-29

想在现有后端接入大模型,最快的路线是先跑通一次 HTTP 请求。Go、Rust、Java 都可以通过 OpenAI 兼容接口发送相同的 JSON,只需分别处理 HTTP 客户端、超时和响应解析。下面用同一个请求文件完成三种语言的首次调用。

1. 准备密钥、模型 ID 和请求文件

59API 提供按量付费的大模型访问,价格处于低价梯队,适合开发测试和控制推理成本。平台提供原生官方品质模型,不做模型降级;例如,可根据预算与任务需求选择 DeepSeek V4 Flash 或 Gemini 2.5 Flash,具体价格以控制台为准。

先在本机设置环境变量:export API_KEY='你的59API密钥'。密钥只放在服务端环境变量或密钥管理服务中。59API 的基础地址为 https://api.59api.com,本文使用的完整请求地址是 https://api.59api.com/v1/chat/completions。

从控制台取得实际模型 ID,或使用 Bearer 鉴权请求 GET https://api.59api.com/v1/models 查看可用模型。展示名称与接口 ID 可能不同,应复制实际 ID。然后在工作目录创建 request.json,将下面的占位文字替换为该 ID:

{"model":"替换为实际模型ID","messages":[{"role":"user","content":"只回复:连接成功"}],"stream":false}

2. Go:使用标准库直接调用

Go 无需安装 SDK。把以下内容保存为 main.go,与 request.json 放在同一目录,执行 go run main.go。示例设置了 60 秒超时,并在读取响应前检查状态码。

package main; import ("bytes"; "fmt"; "io"; "net/http"; "os"; "time"); func main() { b,e:=os.ReadFile("request.json"); if e!=nil { panic(e) }; req,e:=http.NewRequest("POST","https://api.59api.com/v1/chat/completions",bytes.NewReader(b)); if e!=nil { panic(e) }; req.Header.Set("Authorization","Bearer "+os.Getenv("API_KEY")); req.Header.Set("Content-Type","application/json"); client:=&http.Client{Timeout:60*time.Second}; res,e:=client.Do(req); if e!=nil { panic(e) }; defer res.Body.Close(); out,e:=io.ReadAll(res.Body); if e!=nil { panic(e) }; if res.StatusCode<200 || res.StatusCode>=300 { panic(fmt.Sprintf("HTTP %d: %s",res.StatusCode,out)) }; fmt.Println(string(out)) }

成功后会输出完整响应 JSON。业务代码可用 encoding/json 解码,读取 choices[0].message.content,并检查 choices 是否为空。

3. Rust:用 reqwest 发送异步请求

先执行 cargo new llm-demo,进入项目目录并放入 request.json。安装依赖:cargo add [email protected] --no-default-features --features rustls-tls,以及 cargo add tokio --features macros,rt-multi-thread。将以下内容写入 src/main.rs,执行 cargo run。

use std::{env,fs,time::Duration}; #[tokio::main] async fn main() -> Result<(),Box<dyn std::error::Error>> { let client=reqwest::Client::builder().timeout(Duration::from_secs(60)).build()?; let res=client.post("https://api.59api.com/v1/chat/completions").bearer_auth(env::var("API_KEY")?).header("Content-Type","application/json").body(fs::read("request.json")?).send().await?; let status=res.status(); let text=res.text().await?; if !status.is_success() { return Err(format!("HTTP {}: {}",status,text).into()); } println!("{}",text); Ok(()) }

这里先保存状态码,再消费响应正文,方便排查错误。需要结构化结果时,可增加 serde_json 依赖,把成功响应解析为业务结构。

4. Java:JDK 17 自带 HTTP 客户端

Java 可以直接使用 java.net.http,无需第三方依赖。在 request.json 所在目录启动 jshell,粘贴以下代码;JShell 会继承启动终端的 API_KEY 环境变量。

import java.net.*; import java.net.http.*; import java.nio.file.*; import java.time.*; var client=HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).build(); var request=HttpRequest.newBuilder(URI.create("https://api.59api.com/v1/chat/completions")).timeout(Duration.ofSeconds(60)).header("Authorization","Bearer "+System.getenv("API_KEY")).header("Content-Type","application/json").POST(HttpRequest.BodyPublishers.ofFile(Path.of("request.json"))).build(); var response=client.send(request,HttpResponse.BodyHandlers.ofString(java.nio.charset.StandardCharsets.UTF_8)); if(response.statusCode()<200 || response.statusCode()>=300) throw new RuntimeException("HTTP "+response.statusCode()+": "+response.body()); System.out.println(response.body());

集成到 Spring 等应用时,把 HttpClient 作为可复用实例管理;使用 Jackson 等 JSON 库读取结果。已有 OpenAI SDK 项目也可配置 59API 密钥和兼容地址,注意 SDK 是否自动追加 /v1,避免路径重复。

5. 上线前补齐这四项

准备试跑时,可以注册 59API,用一个模型和短提示完成首轮验证,再逐步增加并发。平台也兼容 Claude Code、Codex、Gemini CLI,并提供邀请返利;具体返利规则以平台说明为准。

Precios · Docs

¿Listo para empezar?

Conecta Claude y GPT en minutos a los precios más bajos, sin recortes. Regístrate para obtener tu clave API.

Registro gratis