为你的 UI 提供虚假 API(直到你成功实现)

2025-06-10

为你的 UI 提供虚假 API(直到你成功实现)

图像

很多时候我们只是想快速开始开发 UI 原型,而不需要太多的依赖。

但实际情况是,对于可用的现实世界组件,我们经常需要获取一些数据并让 UI 处理它然后渲染一些东西。

然后我们将:

  • 编写一些快速的后端代码(使用 express、koa、happy 等后端框架)以获得一些 API、路由来返回一些虚拟数据或来自数据库的数据。
  • 研究并利用来自互联网的虚假 API 服务。

对于选项 1 - 编写我们自己的后端。我们必须花费大量时间来创建后端 API:

  • 虚拟数据,分页支持。
  • 符合标准、合适的API接口。
  • 通常,这会分散我们对最初想法的注意力,并且我们将没有太多时间来实现 UI(这可能是我们偶尔放弃宠物项目的原因)

对于选项 2 - 利用来自互联网的虚假 API 服务:

  • 需要互联网连接。
  • 依赖于它们的稳定性。
  • 它们可能会有重大改变,您必须相应地调整代码。
  • 增加依赖性——几年后他们还会在那里吗?

但有更好的方法可以做到这一点......

如果我们有一种简单的方法可以在本地启动我们的虚假 API,并且可以使用一些虚拟数据供 UI 使用,那会怎样?

让我们探索一个名为API now! (api-now)的命令行工具。只需在终端中
输入,它就会启动一个 API 服务器,以支持 HTTPS 的方式提供 JSON、JS 文件或伪造数据!$ npx api-now

这为我们节省了大量在后端进行修补的时间,因此我们可以专注于我们漂亮的 UI 原型,直到我们有时间投资后端设置。

api-now有许多有用的功能,例如:

  • 开箱即用的默认数据集:待办事项、用户、帖子、评论(使用 faker)。
  • HTTPS 支持(带有密钥、证书文件)。
  • 可以采用 .json 或 .js 文件。
  • 可以提供静态目录(例如 /dist、/public 等)——这可以替代 http-server 或 SimpleHTTPServer。
  • API 支持分页(_page、_limit)。
  • /echo 路由以 json 形式响应参数。
  • /file 路由提供任何文件类型(包括图像)。
  • /login 路由(POST)使用虚拟 JWT 令牌进行响应(使用 jsonwebtoken)。
  • /todos 路由返回待办事项列表(遵循 TodoMVC 规范)。
  • /image/random 从目录中提供随机图像文件。
  • /avatar/random 提供随机头像图像。
  • /nature/random 提供随机自然图像。

要尝试一下,请准备好你的 NodeJS(谁还没准备好呢?),然后运行此命令行$ npx api-now。就这样!你现在就可以尝试(从另一个终端):

$ curl http://localhost:3003/todos
$ curl http://localhost:3003/users?_page=1&_limit=5    (others: /posts /comments)

Other Useful Routes:
$ curl http://localhost:3003/echo?any=value
$ curl http://localhost:3003/file?path=YourFilePath
$ curl http://localhost:3003/image/random?path=YourDirPath
$ curl http://localhost:3003/avatar/random
$ curl http://localhost:3003/nature/random
$ curl -X POST http://localhost:3003/login -H 'Content-Type: application/json' -d '{"username": "test"}'
Enter fullscreen mode Exit fullscreen mode

下面是一个使用 api-now 作为 UI 样板的示例项目:
https://newssup.com(开发此网站时使用)
https://github.com/ngduc/parcelui

现在您有更多时间可以尽情摆弄您的精彩 UI 项目!:)

链接: https:
//github.com/ngduc/api-now

鏂囩珷鏉ユ簮锛�https://dev.to/ngduc/fake-apis-for-your-ui-til-you-make-it-2fho
PREV
30 分钟内使用 HTML 和 CSS 构建注册页面
NEXT
我作为一名自学成才的开发人员从零开始到获得第一份开发人员工作的历程。