0

我的任务是制作一个 RESTful api,非常简单,只提供几个表。例如,您应该能够按企业或消费者查找国家/地区,或按国家或州获取信息。问题是,语法要求 api 调用应如下所示:

<domain>/api/v1/Business.Country

或喜欢

<domain>/api/v1/Consumer.Country/us

或者

<domain>/api/v1/Consumer.Country/us/State

那里的那个点甚至可能吗?这是在 LAMP 平台上,所以我想它可以通过某种花哨的 Rewrite 来完成,但我想知道这对于 api 的未来扩展会有多大的灵活性。

4

1 回答 1

0

是的,在您的 URI 中包含点是非常有可能(并且有效)的。您可以编写一些基于 .htaccess 的 mod_rewrite 规则来适当地路由这些请求。

示例重写规则:

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# to handle cases like <domain>/api/v1/Business.Country/us
RewriteRule ^api/v1/Business\.[^/]+/(.*?)/?$ /business?country=$1 [L,QSA,NC]

# to handle cases like <domain>/api/v1/Consumer.Country/us
RewriteRule ^api/v1/Consumer\.[^/]+/(.*?)/?$ /consumer?country=$1 [L,QSA,NC]
于 2013-04-03T10:05:58.440 回答