PinMe API深度解析:从CLI到RESTful接口的完整指南
PinMe API深度解析从CLI到RESTful接口的完整指南【免费下载链接】pinmeDeploy Your Frontend in a Single Command. Claude Code Skills supported.项目地址: https://gitcode.com/gh_mirrors/pi/pinmePinMe是一款强大的前端部署工具通过简单的命令行界面CLI即可实现一键部署同时提供了丰富的RESTful API接口支持邮件发送、LLM集成等高级功能。本文将带你全面了解PinMe API的使用方法从基础的CLI命令到复杂的RESTful接口调用助你轻松掌握这一高效工具。一、PinMe CLI快速部署的终极工具PinMe CLI是项目部署的核心入口通过简洁的命令即可完成前端项目的部署工作。无论是Vue CLI、Vite还是Angular项目都能通过PinMe CLI快速上传到服务器。1.1 安装PinMe CLI要开始使用PinMe CLI首先需要确保它已安装在你的系统中。如果尚未安装可以通过npm或pnpm等包管理工具进行安装npm install -g pinme-cli # 或者 pnpm add -g pinme-cli1.2 基本部署命令使用PinMe CLI部署项目非常简单只需在项目根目录下运行以下命令pinme deployPinMe CLI会自动检测项目类型如Vite、Vue CLI等并将默认输出目录通常是dist/中的静态文件上传到服务器。这一过程实现了可靠、低方差的部署工作流让你无需关心复杂的服务器配置。二、PinMe API概览探索RESTful接口的强大功能除了CLI工具PinMe还提供了一系列RESTful API接口支持邮件发送、LLM聊天等高级功能。这些接口可以在PinMe WorkerTypeScript环境中调用为你的应用添加更多实用功能。2.1 API认证与环境变量在调用PinMe API之前需要了解相关的认证机制和环境变量。PinMe Worker会自动注入以下环境变量export interface Env { DB: D1Database; API_KEY: string; // 项目API密钥用于认证 BASE_URL?: string; // API基础URL默认为https://pinme.cloud }其中API_KEY是调用PinMe API的唯一凭证必须在请求头中通过X-API-Key字段传递。三、核心API详解从邮件发送到LLM集成3.1 邮件发送API实现用户沟通的关键功能PinMe提供了便捷的邮件发送API可用于用户验证、通知等场景。3.1.1 接口信息Endpoint:POST {BASE_URL}/api/v4/send_emailAuthentication:X-API-KeyheaderSender: 自动设置为{project_name}pinme.cloud3.1.2 请求格式{ to: userexample.com, subject: Your verification code, html: pYour code is strong123456/strong/p }3.1.3 响应格式成功响应200{ code: 200, msg: ok, data: { ok: true } }3.1.4 示例代码async function sendEmail(env: Env, to: string, subject: string, html: string): Promise{ ok: boolean; error?: string } { const baseUrl env.BASE_URL ?? https://pinme.cloud; const resp await fetch(${baseUrl}/api/v4/send_email, { method: POST, headers: { Content-Type: application/json, X-API-Key: env.API_KEY, }, body: JSON.stringify({ to, subject, html }), }); const result await resp.json() as { code: number; msg: string; data?: { ok?: boolean; error?: string } }; if (resp.status ! 200 || result.code ! 200) { return { ok: false, error: result.data?.error || result.msg || Unknown error }; } return { ok: true }; }3.2 LLM聊天完成API为应用添加AI能力PinMe API还支持与LLM大型语言模型集成提供聊天完成功能支持流式响应。3.2.1 接口信息Endpoint:POST {BASE_URL}/api/v1/chat/completions?project_name{project_name}Authentication:X-API-KeyheaderRequest Body: OpenAI兼容格式Streaming: 支持SSE (stream: true)3.2.2 请求格式{ model: openai/gpt-4o-mini, messages: [ { role: system, content: You are a helpful assistant. }, { role: user, content: Hello! } ], stream: true }3.2.3 响应格式非流式成功响应200{ id: chatcmpl-..., choices: [{ message: { role: assistant, content: Hello! }, finish_reason: stop }], usage: { prompt_tokens: 10, completion_tokens: 5, total_tokens: 15 } }流式成功响应200data: {choices:[{delta:{content:Hello}}]} data: {choices:[{delta:{content: there}}]} data: [DONE]3.2.4 示例代码非流式调用function getProjectName(request: Request): string { const host new URL(request.url).hostname; // e.g. my-app-1a2b.pinme.pro return host.split(.)[0]; } async function callLLM( env: Env, projectName: string, messages: Array{ role: string; content: string }, model openai/gpt-4o-mini, ): Promise{ content: string; error?: string } { const baseUrl env.BASE_URL ?? https://pinme.cloud; const resp await fetch( ${baseUrl}/api/v1/chat/completions?project_name${projectName}, { method: POST, headers: { Content-Type: application/json, X-API-Key: env.API_KEY, }, body: JSON.stringify({ model, messages }), }, ); if (!resp.ok) { const err await resp.json() as { data?: { error?: string } }; return { content: , error: err.data?.error || HTTP ${resp.status} }; } const data await resp.json() as { choices: Array{ message: { content: string } } }; return { content: data.choices[0]?.message?.content || }; }四、错误处理确保API调用的可靠性PinMe平台API采用统一的响应格式便于错误处理interface PinmeResponseT unknown { code: number; // 200成功其他失败 msg: string; // ok | error | invalid params data?: T; // 成功时的业务数据失败时可能包含{ error: string } }推荐使用统一的错误处理函数async function callPinmeAPIT(url: string, apiKey: string, body: unknown): Promise{ data?: T; error?: string } { let resp: Response; try { resp await fetch(url, { method: POST, headers: { Content-Type: application/json, X-API-Key: apiKey }, body: JSON.stringify(body), }); } catch { return { error: Network error }; } if (!resp.ok) { try { const err await resp.json() as PinmeResponse; return { error: err.data typeof err.data object error in err.data ? (err.data as { error: string }).error : err.msg || HTTP ${resp.status} }; } catch { return { error: HTTP ${resp.status} }; } } const result await resp.json() as PinmeResponseT; if (result.code ! 200) { return { error: result.data typeof result.data object error in result.data ? (result.data as { error: string }).error : result.msg }; } return { data: result.data as T }; }五、总结PinMe API的价值与应用场景PinMe API通过CLI和RESTful接口的结合为前端开发者提供了从部署到功能扩展的全方位解决方案。无论是快速部署静态网站还是为应用添加邮件发送、AI聊天等高级功能PinMe都能满足你的需求。通过本文的介绍你已经了解了PinMe CLI的基本使用方法以及邮件发送和LLM集成等核心API的调用方式。现在你可以开始将这些功能集成到自己的项目中提升开发效率和应用体验。如果你想深入了解更多PinMe API的细节可以参考官方文档项目中的API参考部分获取更全面的信息和示例代码。开始使用PinMe体验从CLI到RESTful接口的无缝开发流程让你的前端项目部署和功能扩展变得更加简单高效【免费下载链接】pinmeDeploy Your Frontend in a Single Command. Claude Code Skills supported.项目地址: https://gitcode.com/gh_mirrors/pi/pinme创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考