使用 Nodejs 开发的 SpaceX-API 开源了!

上面这个图片不是从网上随便找的,来自于 SpaceX-API 项目的 Github 网站,想起了之前说的一个玩笑 “面试造火箭” 这次是真的造火箭了。。。

SpaceX-API 是什么?

SpaceX-API 是一个用于火箭、核心舱、太空舱、发射台和发射数据的开源 REST API。

https://docs.spacexdata.com 展示了所提供的 API 接口,还包括多种语言的接口调用,下图右侧展示 Nodejs 的调用示例及相应返回值。

技术栈是什么?

  • 部署在美国中部 Linode 服务器上。

  • 使用了 NodejsKoa 框架。

  • 使用了 RedisNginxCloudflare 进行内容缓存。

  • 使用了 JestSupertest 做测试。

  • 使用了 Circle CI 进行持续集成/部署。

  • 所有的数据存储在 MongoDB Atlas 3 节点的副本集集群中。

  • 使用 mongodump 在晚上进行数据备份,在这里查看 https://backups.jakemeyer.sh/。

Koa 在 Nodejs 中也是一个比较知名的框架,之前也有 Node 同学问,有没有什么开源的相关项目可以学习的?

SpaceX-API 这个项目提供了很多丰富的数据,虽然它不能真正让你造出一个火箭(并不包含火箭真正的制作步骤,????),但是借助它提供的数据做一些有意思的项目还是可以的,通过开源项目也是一个学习的过程。

上图展示了 SpaceX-API 的目录结构,可以看到使用到 koa、mongoose 还有 ioredis 等,文末阅读原文你可以学习它们在该项目中是如何使用的。

如何部署

NPM 本地部署

熟悉 Nodejs 的朋友,你可以通过 NPM 快速在本地部署该项目,如果你还没有安装 Nodejs 可以参考我的这篇文章 “3N 兄弟” 助您完成 Node.js 环境搭建 Nodejs 安装成功之后 NPM 就有了。

1. 克隆进入到这个仓库

$ git clone https://github.com/r-spacex/SpaceX-API.git && cd SpaceX-API

2. 安装依赖

$ npm install

3. 运行 ESlint 和所有的测试

$ npm test

4. 开启这个应用

$ npm start
使用 Docker

除此之外你还可以使用 Docker 的方式,前提也是要确保你的 Docker 已正确安装,如果你对 Docker 也不熟悉,不要紧可以看看这篇介绍 一文零基础教你学会 Docker 入门到实践

$ git clone https://github.com/r-spacex/SpaceX-API.git && cd SpaceX-API
$ docker-compose build
$ docker-compose up

Reference

  • github.com/r-spacex/SpaceX-API


敬请关注「Nodejs技术栈」微信公众号,获取优质文章,也欢迎大家投稿 Nodejs 相关技术文章,在后台留言可与我取得联系。

往期精彩回顾

Nodejs 中 ES Modules 使用入门讲解

Nodejs v14.3.0 发布支持顶级 Await

Nodejs Stream pipe 的使用与实现原理分析

Nodejs 中基于 Stream 的多文件合并实现

深入 Nodejs 源码探究 CPU 信息的获取与利用率计算

Nodejs 进阶:解答 Cluster 模块的几个疑问

多维度分析 Express、Koa 之间的区别

Node.js 服务 Docker 容器化应用实践

JavaScript 浮点数之迷:大数危机

Node.js 是什么?我为什么选择它?

TypeScript 面向对象程序设计(OOP)

Node.js 内存管理和 V8 垃圾回收机制

以下是使用Node.js调用OpenAI API的示例代码: ```javascript const fetch = require('node-fetch'); const API_KEY = 'YOUR_API_KEY'; const MODEL_ID = 'davinci'; async function generateText(inputText) { const prompt = inputText.trim(); const url = `https://api.openai.com/v1/models/${MODEL_ID}/completions`; const headers = { 'Content-Type': 'application/json', 'Authorization': `Bearer ${API_KEY}`, }; const body = JSON.stringify({ prompt, max_tokens: 50, n: 1, stop: '\n', }); const response = await fetch(url, { method: 'POST', headers, body }); const data = await response.json(); const text = data.choices[0].text.trim(); return text; } async function main() { const inputText = 'Hello, how are you?'; const outputText = await generateText(inputText); console.log(outputText); } main(); ``` 在上面的示例中,我们首先导入`node-fetch`库,这是一种用于在Node.js中进行HTTP请求的库。然后,我们定义了我们的OpenAI API密钥和模型ID。 接下来,我们定义了一个名为`generateText`的异步函数,该函数将输入文本作为参数,并返回生成的文本。在函数中,我们使用`fetch`函数向OpenAI API发送POST请求。我们使用`headers`对象设置请求头,并将请求体设置为一个JSON字符串。我们将`max_tokens`设置为50,这表示我们想要生成的文本的最大长度为50个标记。我们将`n`设置为1,这表示我们只希望生成一段文本。我们将`stop`设置为`\n`,这表示生成的文本将在第一个换行符处停止。 最后,我们解析API的响应,并从中提取生成的文本。最后,在`main`函数中,我们调用`generateText`函数并打印输出文本。 请注意,此示例代码仅供参考,并且需要您使用自己的OpenAI API密钥和模型ID来运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值