php magento 开发,magento2 开发Api接口实例
magento2 开发Api接口实例
新建一个模块
第一步先创建module.xml初始化模块
模块配置 – etc/module.xml
然后新建Registration
注册模块 – registration.php
MagentoFrameworkComponentComponentRegistrar::register(
MagentoFrameworkComponentComponentRegistrar::MODULE, 'Max_Hello', __DIR__ );
API 的配置
这里需要建立两个xml文件di.xml和webapi.xml,其中di用于依赖注入,而webapi用于设定路由和指定方法名称,同时设定访问权限
Web API 配置 – etc/webapi.xml
我们使用anonymous设置,让其可以直接通过url访问
注入声名 – etc/di.xml
创建接口文件 – Api/HelloInterface.php
namespace MaxHelloApi;
interface HelloInterface{
/**
* Returns greeting message to user
* * @api
* @param string $name Users name.
* @return string Greeting message with users name.
*/
public function name($name);
}
新建Model – Model/Hello.php
namespace MaxHelloModel;
use MaxHelloApiHelloInterface;
class Hello implements HelloInterface{
/**
* Returns greeting message to user
* * @api
* @param string $name Users name.
* @return string Greeting message with users name.
*/
public function name($name) {
return "Hello, " . $name;
}
}
这里必须在声名方法前加上正确格式的注释,注明参数类型和返回类型,不然接口会报Class does not exist
这我猜测因为它是基于soap的接口,但php是弱类型命名的,所以在类似WSDL中其他强类型命名的想调用,出于考虑Magento强制把类型定义放到注释上,但这是一个大坑,如果不知道的人很可能也会遇到这个问题。
测试Rest Api
Rest Api格式如下:
http://{domain_name}/rest/V1/{method}/{attribute}/{value}
浏览器直接打开地址如下:
如: http://magento2.dev/rest/V1/hello/name/world
浏览器会显示以下结果:
Hello, world
SOAP方式访问:
$proxy = new SoapClient('http://magento2.dev/index.php/soap/default?wsdl&services=maxHelloV1');
$result = $proxy->maxHelloV1Name(array("name"=>"world"));
var_dump($result);
SOAP打印结果
object(stdClass)#2 (1) { ["result"]=> string(10) "Hello, world"}
ACL.XML
若不在WebApi使用anonymous权限,我们需要在etc文件夹新建一个acl.xml文件
如: – etc/acl.xml
在这种情况下,我们需要在webapi.xml的resource节点中添加“Max_Hello ::hello”,这种操作后就可以不使用anonymous了。
参考:
php magento 开发,magento2 开发Api接口实例相关推荐
- 基于Java的Zabbix二次开发-----Zabbix的Api接口实例
博主之前的文章配置好了Zabbix环境,正常启动Zabbix服务端,并成功监控客户端服务器的情况,如有疑问,下方传送门: centos7下安装Zabbix服务端 Windows下安装Zabbix客户端 ...
- Android开发规范:API接口安全设计规范
公众号[国民程序员]回馈粉丝福利: 现金红包和送书活动火热进行中,点击参与! 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买. 书籍详情请 ...
- Widget API 接口实例演示(二) ——Telephony类和PIM类
Widget API 接口实例演示(二) --Telephony类和PIM类 OPhone平台开发, 2010-01-05 15:03:07 标签 : 接口 API PIM Telephony 关于电 ...
- python实现简单的api接口-对Python实现简单的API接口实例讲解
get方法 代码实现 # coding:utf-8 import json from urlparse import parse_qs from wsgiref.simple_server impor ...
- 简单python脚本实例-对Python实现简单的API接口实例讲解
get方法 代码实现 # coding:utf-8 import json from urlparse import parse_qs from wsgiref.simple_server impor ...
- api接口 php_PHP关于API接口实例分享
API就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作).本文主要和大家分享PHP关于API接口实例,希望能帮助到大家. PHP生成J ...
- java restful接口开发实例_实战:基于Spring Boot快速开发RESTful风格API接口
写在前面的话 这篇文章计划是在过年期间完成的,示例代码都写好了,结果亲戚来我家做客,文章没来得及写.已经很久没有更新文章了,小伙伴们,有没有想我啊.言归正传,下面开始,今天的话题. 目标 写一套符合规 ...
- js学习总结----crm客户管理系统之项目开发流程和api接口文档
CRM ->客户管理系统 CMS ->内容发布管理系统 ERP ->企业战略信息管理系统 OA -> 企业办公管理系统 产品 / UI设计:需求分析,产品定位,市场调查...按 ...
- LiveNVR传统安防摄像机互联网直播-二次开发相关的API接口
LiveNVR安防流媒体服务,支持RTSP稳定拉流接入,支持Onvif协议接入,支持RTMP/HLS/HTTP-FLV分发,将传统安防监控设备互联化,无插件直播等. LiveNVR相关二次开发-API ...
最新文章
- 如何修改word中的单位信息、用户信息及文档属性
- 解密新一代Java JIT编译器Graal
- 线程同步 生产者消费者 java_Java线程同步:生产者-消费者 模型(代码示例)
- 一文揭秘定时任务调度框架quartz
- 数据库实现列值合并为行
- 中石油训练赛 - Fermat‘s Optimization Problem(Java高精度运算+二分)
- 数组在内存中存储方式
- Python爬取网页中表格数据并导出为Excel文件
- kali无法共享本机文件_MySQL服务端读取客户端文件漏洞的复现
- springboot 对象 空指针_springboot获取getBean方法以及ApplicationContext空指针问题解决...
- python3中字符编码转换
- Windows常用快捷键
- 在移动硬盘(SDD)上装ubuntu18.04
- github搭建与遇到的问题
- 高效工作-使用石墨文档进行信息收集
- MATLAB复数相关运用
- 什么是全景(360全景、720全景、VR全景)?
- 动画:从 AE 到 Web
- git操作生成ssh公钥
- Linux设置防火墙