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接口实例相关推荐

  1. 基于Java的Zabbix二次开发-----Zabbix的Api接口实例

    博主之前的文章配置好了Zabbix环境,正常启动Zabbix服务端,并成功监控客户端服务器的情况,如有疑问,下方传送门: centos7下安装Zabbix服务端 Windows下安装Zabbix客户端 ...

  2. Android开发规范:API接口安全设计规范

    公众号[国民程序员]回馈粉丝福利: 现金红包和送书活动火热进行中,点击参与! 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买. 书籍详情请 ...

  3. Widget API 接口实例演示(二) ——Telephony类和PIM类

    Widget API 接口实例演示(二) --Telephony类和PIM类 OPhone平台开发, 2010-01-05 15:03:07 标签 : 接口 API PIM Telephony 关于电 ...

  4. python实现简单的api接口-对Python实现简单的API接口实例讲解

    get方法 代码实现 # coding:utf-8 import json from urlparse import parse_qs from wsgiref.simple_server impor ...

  5. 简单python脚本实例-对Python实现简单的API接口实例讲解

    get方法 代码实现 # coding:utf-8 import json from urlparse import parse_qs from wsgiref.simple_server impor ...

  6. api接口 php_PHP关于API接口实例分享

    API就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作).本文主要和大家分享PHP关于API接口实例,希望能帮助到大家. PHP生成J ...

  7. java restful接口开发实例_实战:基于Spring Boot快速开发RESTful风格API接口

    写在前面的话 这篇文章计划是在过年期间完成的,示例代码都写好了,结果亲戚来我家做客,文章没来得及写.已经很久没有更新文章了,小伙伴们,有没有想我啊.言归正传,下面开始,今天的话题. 目标 写一套符合规 ...

  8. js学习总结----crm客户管理系统之项目开发流程和api接口文档

    CRM ->客户管理系统 CMS ->内容发布管理系统 ERP ->企业战略信息管理系统 OA -> 企业办公管理系统 产品 / UI设计:需求分析,产品定位,市场调查...按 ...

  9. LiveNVR传统安防摄像机互联网直播-二次开发相关的API接口

    LiveNVR安防流媒体服务,支持RTSP稳定拉流接入,支持Onvif协议接入,支持RTMP/HLS/HTTP-FLV分发,将传统安防监控设备互联化,无插件直播等. LiveNVR相关二次开发-API ...

最新文章

  1. 如何修改word中的单位信息、用户信息及文档属性
  2. 解密新一代Java JIT编译器Graal
  3. 线程同步 生产者消费者 java_Java线程同步:生产者-消费者 模型(代码示例)
  4. 一文揭秘定时任务调度框架quartz
  5. 数据库实现列值合并为行
  6. 中石油训练赛 - Fermat‘s Optimization Problem(Java高精度运算+二分)
  7. 数组在内存中存储方式
  8. Python爬取网页中表格数据并导出为Excel文件
  9. kali无法共享本机文件_MySQL服务端读取客户端文件漏洞的复现
  10. springboot 对象 空指针_springboot获取getBean方法以及ApplicationContext空指针问题解决...
  11. python3中字符编码转换
  12. Windows常用快捷键
  13. 在移动硬盘(SDD)上装ubuntu18.04
  14. github搭建与遇到的问题
  15. 高效工作-使用石墨文档进行信息收集
  16. MATLAB复数相关运用
  17. 什么是全景(360全景、720全景、VR全景)?
  18. 动画:从 AE 到 Web
  19. git操作生成ssh公钥
  20. Linux设置防火墙

热门文章

  1. 校园转转二手市场源码/Java整站源码
  2. 传统服务器与云服务器
  3. SEO外链专员操作规范
  4. win7系统升级到win10系统,电脑系统win7升级到win10方法【详解】
  5. 批量构造四阶类自然数奇偶简单幻立方的一种方法
  6. 博雅互动:德州扑克,全球挣钱
  7. 计算机应用基础本形考任务作业一,国开电大18秋《计算机应用基础》形考任务作业...
  8. Mask R-CNN数据标注和模型训练
  9. SCI与EI的爱情—科研励志成长类爱情故事
  10. UnityShader实例14:屏幕特效之高斯模糊(Gaussian Blur)