sjiamnocna/nette-apication

基于Nette的安全性的简单且轻量级的API

0.10.2 2023-03-21 11:06 UTC

This package is auto-updated.

Last update: 2024-09-21 13:53:27 UTC


README

欢迎来到基于Nette框架的小实验。

其目的是在使用Nette作为API的同时减少服务器负载。<br/> Nette非常棒且复杂。APItte和其他API工具也是如此。

该项目不解决所有可能的API。<br/> 它非常简单、简约且轻量(按设计)。

  • 替换Nette\Application
  • 去除不必要的预加载Nette组件以提高性能
    • 演示者(转换为端点)
    • 路由器(简化并合并到请求中)
    • 容器中一些其他不必要的自动加载组件
    • DI服务为每个端点按需创建
  • 自动处理来自JS/Fetch API的数据,如果存在x-requested-with: XMLHttpRequest头信息,则通过STDIN传递
  • 使用Tracy显示XHR/Fetch请求中的错误
  • 引入简约的AJAX API安全性
  • 使用git@gitlab.com:sjiamnocna/renette.git作为前端,您可以简化React + Nette的集成
    • 如果您将此存储库克隆到项目中的server/目录,您可以使用npm startyarn start来运行React(Node)和PHP开发服务器(仅限开发,不要公开使用
    • 更多功能即将到来
  • 如果您不喜欢任何内容,请随意覆盖

不要误解我,我喜欢Nette!

Nette、Latte等都是伟大的。在我看来,它们只是对于现代“API”世界来说效率不够高

用法

  • 执行composer require sjiamnocna/nette-apication或将sjiamnocna/nette-apication添加到您的composer.json中,然后运行composer install
  • 为Nette创建templog目录以供工作
  • 将服务添加到配置app/config/common.neon
    services:
    Application: APIcation\CApplication(%parameters%)
    
  • 创建app/config/local.neon如下(永远不要添加到GIT中!!!);
      parameters:
          service: # used for service authentication
              service: privatekey
          #...other param
    

从根目录(位于server/之上)使用yarn start启动服务器和本地React应用(CRA)

或者使用Makefile:make run运行本地PHP服务器

使用CLIRunner在CLI中运行命令,例如CRON或维护

  • 创建实现I**的类

代码

  • 创建一个以'E'开头的Endpoint类(如EEndpoint),它继承自CAbstractEndpoint。
    • 我建议您为您的端点创建一个src/Endpoints/目录
    • 如果您发现需要,可以自由覆盖公共方法run(),该方法是每次调用端点时都会运行的,但那时您就自行负责了 :)
  • 在那里,创建一个名为default(或__default用于秘密方法)的方法
  • 访问apidomain.com/api/endpoint URL

性能

  • 性能才是关键
    • 由基本Nette-app、演示者、响应和没有任何API安全性的API解决方案组成,其性能超过80ms,缓存后为20ms
    • 该项目实现了简单的安全性,DI注入到端点中,性能约为40ms,缓存后为5ms
    • 由Tracy测量 - 当关闭调试模式时,我相信应用程序的性能会更好

示例

安装并享受