同一服务器,多个项目用到共同的接口数据,请问不同项目如何调用统一的接口?curl吗?

问题见题。例如,app项目接口用到注册接口,微信项目用到注册接口,官网项目用到注册接口,(每个项目不同的域名),我把这个注册接口用单独域名写成了api。请问如何在不同的项目中调用该api?curl方式吗? 大家一般怎么做的?可有通用的解决方案?项目都是php写的。请教,感谢!

阅读 5.9k
5 个回答

楼主你这个问题问的有点含糊
我想你的意思应该是问安卓appios app微信项目pc项目如何调用php接口吧?
前两者app如何调用php接口我不清楚,只不过app的后端服务可以用php来写;
后两者如果微信项目也是用php写的,那么和pc项目调用php接口的方式一样,用curl就可以。

附:如果楼主是phper,只需要考虑到接口怎么写好即可。至于其他项目如何调用,与相应的同事沟通就好。

楼主提到两个重点:
1、每个项目不同的域名
2、我把这个注册接口用单独域名写成了api

建议/解决方法:
如果是不同域名的话就会牵制到跨域,前端是无法作跨域请求的,只能在当前域名的服务端通过curl去请求注册接口了
当然可以使用Nginx的反向代理(具体这里不做介绍了)
但目前基于你现在的这种情况,建议使用curl来做会 比较好

目前好像只能使用curl了

单独拆分,把一些公共的做成服务,curl调用,建议内网调用

跨域的话 参考
1、允许单个域名访问

指定某域名(http://client.runoob.com)跨域访问,则只需在http://server.runoob.com/serv...文件头部添加如下代码:

header('Access-Control-Allow-Origin:http://client.runoob.com');
2、允许多个域名访问

指定多个域名(http://client1.runoob.comhttp://client2.runoob.com等)跨域访问,则只需在http://server.runoob.com/serv...文件头部添加如下代码:
$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';

$allow_origin = array(

'http://client1.runoob.com',  
'http://client2.runoob.com'  

);

if(in_array($origin, $allow_origin)){

header('Access-Control-Allow-Origin:'.$origin);       

}
3、允许所有域名访问

允许所有域名访问则只需在http://server.runoob.com/serv...文件头部添加如下代码:

header('Access-Control-Allow-Origin:*');
参考地址
http://www.cnblogs.com/xiezn/...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题