arthurh / rest-proxifier

1.0.5 2015-04-20 09:32 UTC

This package is auto-updated.

Last update: 2024-09-12 20:49:40 UTC


README

本项目的目标是代理您的 REST API。

为什么要这样做?

首先,当我发现一些 REST API 没有处理 CORS 时,我就开始了这个项目。

例如,本项目将为 angularjs 项目重新注入 CORS 头。

本项目还将缓存读取请求的响应。

注意: Rest-proxifier 使用 pathinfo,因此请设置您的 Web 服务器使用它。

注意2: 本项目已准备好 Cloud Foundry,因此您也可以在 Cloud Foundry 中使用它来处理 uaa REST API 等。

安装

通过 Composer,当然。

$ composer create-project arthurh/rest-proxifier path/

如何使用

您可以使用多种方式使用 rest-proxifier

  • 从配置文件代理
  • 如果您使用 CloudFoundry,则从 CloudFoundry 服务代理
  • 从数据库条目代理

这三种方式可以同时使用,没有限制。

对于简单使用,请参阅 config/default.yml

proxyfy:
  - api: http://example.com
    route: /api
    #this is optionnal
    #request-header:
    #  header-key: header-value
    #response-header:
    #  header-key: header-value
    #response-content: ~
admin-ui: true #set to false to remove admin interface
admin-ui-root: /admin #path to admin ui
rewriting: false #set to true if you use rewriting to point directly on index.php
caching-time: 20 minutes #set to false to remove caching
log-request: true #set to false to stop logs user request to proxify
database: false #or uri to database, e.g: mysql://root:password@localhost/mydb or special uri for sqlite: sqlite:/path, this is optionnal

此文件可以使用 jsonxml 重新编写,它使用此依赖项 noodlehaus/config,因此如果您不使用 yaml,请遵循此依赖项的 schema。

对于此默认配置,有一个示例,一个路由已经设置。

您应该尝试去 http://<my hostname>/index.php/api,然后 rest-proxifier 将使用 CORS 头响应页面 http://example.com

如果您执行 http://<my hostname>/index.php/api/other/verb/for/api,rest-proxifier 将响应 http://example.com/other/verb/for/api

管理界面

默认情况下,您有一个位于 http://<my hostname>/index.php/admin 的界面。

您可以使用它仅在一个数据库上添加更多代理。

配置文件中的代理无法使用此界面修改,目的是让这些代理始终可访问。

对于 Cloud Foundry 用户

这部分仅适用于使用 Cloud Foundry PaaS 的人。

您可以使用包含 proxy(使用正则表达式查找服务)的名称创建一个服务(例如,使用此 json 值)

[
    {
      "api": "http://example.com",
      "route": "/api"
    }
]

然后 rest-proxifier 将自动绑定到该服务

您还可以创建一个数据库服务,其名称应包含以下值之一(使用正则表达式查找服务)

  • my(用于 mysql)
  • db
  • database
  • oracle
  • oci
  • postgres
  • pgsql
  • maria

然后 rest-proxifier 将自动将数据库绑定到该服务