博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[译]Magento2中使用Web Api
阅读量:6329 次
发布时间:2019-06-22

本文共 1244 字,大约阅读时间需要 4 分钟。

今天我开发一个Magento2的Webapi来分享一下

新建一个模块

假设我们已经学习过建设模块的前提

第一部建设module.xml设定模块

模块配置 – etc/module.xml

然后新建Registration

注册模块 – registration.php

API 的备置

这里需要建立两个xml文件di.xml和webapi.xml,其中di用于依赖注入,而webapi用于设定路由和指定方法名称,同时设定访问权限

Web API 备置 – etc/webapi.xml

我们使用anonymous设置,让其可以直接访问

注入声名 – etc/di.xml

建立接口文件 – Api/HelloInterface.php

新建Model – Model/Hello.php

此处必须在声名方法前加上备注,注明参数类型,不然会报Class does not exist

我就遇上这个坑了后来网上找到:
在接口文件加注释声名参数类型后可以正常运行,这我猜测是因为它是基于soap的接口,但php是弱类型命名的,所以在类似WSDL中其他强类型命名的想调用,出于考虑Magento把类型定义放到注释上,但这是一个大坑,我们这些不清楚的人会不知道这个问题

目录结构如下图:

clipboard.png

测试Rest Api

Rest Api格式如下:

http://{domain_name}/rest/V1/{method}/{attribute}/{value}.
浏览器直接打开地址如下:
如:

浏览器会显示以下结果:

Hello, Jim

SOAP方式访问:

inchooHelloV1Name(array("name"=>"Jim"));var_dump($result);

SOAP打印结果

object(stdClass)#2 (1) {  ["result"]=>  string(10) "Hello, Jim"}

ACL.XML

若不在WebApi使用anonymous权限,我们需要在etc文件夹新建一个acl.xml文件

如: – etc/acl.xml

在这种情况下,我们需要在webapi.xml的resource节点中添加“Inchoo_Hello ::hello”,这种操作后就可以不使用anonymous了。

参考:

转载地址:http://eiwoa.baihongyu.com/

你可能感兴趣的文章
【Java多线程】JUC包下的工具类CountDownLatch、CyclicBarrier和Semaphore
查看>>
【git】error: Your local changes to the following files
查看>>
LeetCode – Refresh – Binary Tree Level Order Traversal ii
查看>>
夜间模式的开启与关闭,父模板的制作
查看>>
EMMA 覆盖率工具
查看>>
WPF中获取系统本身自带的控件模板(XAML)
查看>>
Aircrack-ng官方文档翻译[中英对照]---Aireplay-ng
查看>>
cxImage控件使用
查看>>
js返回顶部
查看>>
手机测试用例-时钟测试用例
查看>>
Hamming校验码
查看>>
第六十一课、智能指针类模板
查看>>
LoadRunner 文本检查点使用
查看>>
12/4团队会议4
查看>>
[BZOJ1927]星际竞速(费用流)
查看>>
PowerDesigner添加表注释
查看>>
使用VMware安装Ubuntu虚拟机,创建后开启显示黑屏的解决方法
查看>>
Java数据结构与算法(11) - ch06递归(二分法查找)
查看>>
文件操作
查看>>
this的指向
查看>>