问题在于似乎没有多少资源可用。是否已经有任何库存在/官方的/或者我需要从头开始创建API?
与您问题中的某个评论不同,Prestashop实际上确实提供REST服务。在文档中,它被称为“Web服务”。
快速链接:
-
Prestashop Web服务使用
-
Web服务单页文档
-
Web服务教程
有一些
开源API实现可用,但没有专门针对Android / Java。但您可能会发现它们作为指南很有用。
需要注意以下几点:
网页服务功能似乎默认情况下是禁用的。因此,为了使用它,您必须首先在后台启用它。摘自文档:
启用网页服务功能
进入PrestaShop后台,在“高级参数”菜单下打开“Webservice”页面,然后选择“Yes”以启用PrestaShop的网页服务。保存更改:完成!
与Web服务通信需要API密钥。您需要再次使用后台为Android应用程序生成一个API密钥:
创建访问密钥
在“高级参数”菜单下打开“Webservice”页面,然后单击“添加新项”按钮以访问帐户配置部分。会出现一个长表单:
- 密钥。API密钥用作您正在创建的Webservice帐户的主要标识符。单击“生成”按钮以获取唯一的身份验证密钥。您也可以创建自己的(必须为32个字符长),但使用生成的密钥可以防止恶意用户轻易猜测到您的密钥。使用此密钥,您和其他选定的用户将能够访问Webservice。
- 密钥描述。帮助您记住为谁创建了该密钥,分配了哪些访问权限等。描述不是公开的,但请确保放置与用户相关的所有关键字,以便更快地找到其密钥。
- 状态。您可以随时禁用任何密钥。
- 权限。此部分非常重要,因为它使您能够为要向此密钥提供的每个资源分配权限。实际上,您可能希望用户对某些资源具有读写访问权限,但仅对其他资源具有读取权限,并且无法访问更重要的资源。在权限列表中,最左边的复选框使您能够定义给定资源的所有权限。同样,每列顶部的复选框使您能够将选择权(查看、修改等)赋予所有资源。确保仅选择使用该密钥的用途所需的权限。不要为任何密钥提供所有资源的所有权限,只保留给自己的密钥和您自己的密钥。商店关联。这仅在多商店模式下出现。它使您能够选择密钥所有者应访问哪些商店。
如果您选择使用自定义通行证而不是生成的通行证,请确保它非常安全并且其权限受到限制 - 并且长度为32个字符!
最后,要获取API方法的概述:
从浏览器访问webservice
您商店的webservice端点位于Prestashop安装根目录下的/api/
文件夹中:
要访问它,您需要在请求时提供API密钥。没有密码,只需提供API密钥即可 - 因此用户应保密该密钥!您可以直接键入API端点地址然后输入API密钥,或在地址中指示API密钥。这是一个例子,其中UCCLLQ9N2ARSHWCXLT74KUKSSK34BFKX
是API密钥。
您可以使用任何支持XML的浏览器进行测试。如果未为密钥设置权限,则浏览器将无限期地要求您输入密钥。
结果应该类似于这样(适用于 PrestaShop 1.5.4.1 版本):
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<api shop_name="MYSHOP">
<addresses>...</addresses>
<carriers>...</carriers>
<cart_rules>...</cart_rules>
<carts>...</carts>
<categories>...</categories>
<combinations>...</combinations>
<configurations>...</configurations>
<contacts>...</contacts>
<content_management_system>...</content_management_system>
<countries>...</countries>
<currencies>...</currencies>
<customer_messages>...</customer_messages>
<customer_threads>...</customer_threads>
<customers>...</customers>
<deliveries>...</deliveries>
<employees>...</employees>
<groups>...</groups>
<guests>...</guests>
<image_types>...</image_types>
<images>...</images>
<languages>...</languages>
<manufacturers>...</manufacturers>
<order_carriers>...</order_carriers>
<order_details>...</order_details>
<order_discounts>...</order_discounts>
<order_histories>...</order_histories>
<order_invoices>...</order_invoices>
<order_payments>...</order_payments>
<order_states>...</order_states>
<orders>...</orders>
<price_ranges>...</price_ranges>
<product_feature_values>...</product_feature_values>
<product_features>...</product_features>
<product_option_values>...</product_option_values>
<product_options>...</product_options>
<product_suppliers>...</product_suppliers>
<products>...</products>
<search >...</search>
<shop_groups>...</shop_groups>
<shops>...</shops>
<specific_price_rules>...</specific_price_rules>
<specific_prices>...</specific_prices>
<states>...</states>
<stock_availables>...</stock_availables>
<stock_movement_reasons>...</stock_movement_reasons>
<stock_movements>...</stock_movements>
<stocks>...</stocks>
<stores>...</stores>
<suppliers>...</suppliers>
<supply_order_details>...</supply_order_details>
<supply_order_histories>...</supply_order_histories>
<supply_order_receipt_histories>...</supply_order_receipt_histories>
<supply_order_states>...</supply_order_states>
<supply_orders>...</supply_orders>
<tags>...</tags>
<tax_rule_groups>...</tax_rule_groups>
<tax_rules>...</tax_rules>
<taxes>...</taxes>
<translated_configurations>...</translated_configurations>
<warehouse_product_locations>...</warehouse_product_locations>
<warehouses>...</warehouses>
<weight_ranges>...</weight_ranges>
<zones>...</zones>
</api>
<api shop_name="MYOTHERSHOP">...</api>
<api shop_name="YETANOTHERSHOP">...</api>
</prestashop>
既然您提到您主要感兴趣的是支持Android应用程序中的基本/核心功能,我倾向于说这可能符合您的需求。:)