sroehrl/scaffold-api

v1.0.3 2020-07-27 15:41 UTC

This package is auto-updated.

Last update: 2024-09-11 07:34:48 UTC


README

这是由于一个twitch.tv/neoan3会议的结果而快速定制的API脚手架

这是什么?

几秒钟内创建您的后端,并通过命令行添加端点。您不需要数据库,此工具附带了基于文件的数据库以方便您使用。然而,您可以在任何时间轻松添加数据库。

开箱即用,您有

  • 用户注册
  • 用户登录/认证
  • JWT / 无状态认证端点
  • 开发服务器

安装

注意:需要neoan3-cli、PHP和composer全局可用。

  1. composer create-project sroehrl/scaffold-api
  2. neoan3 develop

这就对了,您的项目应该可以运行。

使用方法

在项目目录中,运行

php scaffold <yourAPIendpointName>以生成get和post端点。

可以通过编辑生成的模型和组件文件来修改端点(或添加额外的方法)。有关详细信息,请查看neoan3

用户模型

此项目已包含用户模型和端点。

要注册

POST /api.v1/users

{
  "userName": "name82",
  "password": "123456",
  "whatever": "any-key-value-pair"
}

响应格式

{
  "user": {
    "userName": "name82",
    "_id": "id-with-high-entropy"
  },
  "token": "JWT-token"
}

所有生成的调用都需要使用JWT-token。

// e.g. axios
const config = {
    headers: { Authorization: `Bearer ${token}` }
};

axios.get('http://localhost:8080/api.v1/test/1',{},config).then(...)

登录

POST /api.v1/users/auth

期望与注册相同的json格式(userName,password),返回相同的格式。

示例

php scaffold posts

生成以下端点

POST /api.v1/posts 创建新帖子

GET /api.v1/posts 返回多个帖子;接受可选参数(例如?title=first)

GET /api.v1/posts/:id 获取帖子

PUT /api.v1/posts/:id 更新帖子

// e.g. axios
const config = {
    headers: { Authorization: `Bearer ${token}` }
};
const endpoint = "http://localhost:8080/api.v1/posts";

// create post
axios.post(endpoint, {
    title: "my first post",
    content: "What a day!",
    gitHubLink: "https://github.com/sroehrl",
    author: "neoan"
},config).then(res => {
    const post = res.data;
    
    // get all posts by neoan
    axios.get(endpoint + '?author=neoan',{},config).then(res => {
        const allPosts = res.data;    
    })
})

整体视图

设置旨在翻新,而不是生成纯测试-api,这意味着结构是稳固的。您可以在提供即时可用性的同时构建实际的数据库实现。