API映射是什么?

4
我想从Overstock.com的SOFS API获取库存和订单详情,用于我们基于PHP和MySQL的Web应用程序。但是他们的集成分析师总是问我是否完成了映射?
我在API集成方面没有太多经验,我所做的API是使用Amazon MWS API的访问凭据,并可以轻松地从其系统向我们的PHP应用程序发出请求和响应。
但是对于Overstock.com,我不确定什么是API映射?
请有人给我一点提示。

通常来说,映射是将他们给你的字段转换为你需要的字段。比如说,你将名字存储为 fnamelname,但他们给你的是 firstlast,那么你就需要将 first 映射到 fname,将 last 映射到 lname。它们可能意味着其他的东西,但这就是我通常所说的映射。通常我会使用这样的数组 ['fname' => 'first', 'lname' => 'last'],然后使用 array_key_intersectarray_merge 等函数,将他们给你的数据转换为你需要的数据。 - ArtisticPhoenix
感谢@ArtisticPhoenix。在这种情况下,无论他们的API响应是什么,我都可以在我们自己的数据库结构中对其进行操作。那么我应该告诉他我已经映射好了,还是需要准备好我的代码以便在集成期间进行调用? - Muhammad Tarique
2个回答

1

以下是一个简单的映射方案示例,

正如我所说,当我听到“映射”一词时,我想到的就是这个,但他们可能指的是不同的东西。

$data = [
    'fname' => 'John', 
    'lname' => 'Doe',
];

$map = [
    'lname' => 'last',
    'fname' => 'first'
];

//create a blank array in the order of your mapping
$blank = array_fill_keys(array_keys($map), '');

//order their array to match the blank array, which matches the mapping
$ordered = array_replace($blank, $data);

//merge your keys with the array ordered to match the mapping order
$output = array_combine($map, $ordered);

输出:

Array
(
    [last] => Doe
    [first] => John
)

你可以在这里在线查看

同时请注意,我故意改变了数组的顺序,以显示顺序无关紧要。这也有填充任何缺失数据的好处。所以一个例子是这样的(与上面相同的代码):

$data = [
    'fname' => 'John', 
    'lname' => 'Doe',
    //middle name data is missing
];

$map = [
    'lname' => 'last',
    'fname' => 'first',
    'mname' => 'middle'
];

输出(使用引号表示空字符串):

Array
(
    [last] => Doe
    [first] => John
    [middle] => ''
)

这是一种非常简单、直接的方法,很容易在以后添加新字段。因此,我想与您分享,如果确实是这样的话。

唯一需要补充的是,不要害怕询问他们所说的映射是什么意思。有些术语在不同的地方可能略有不同。最坏的情况是他们会说你是个白痴(讽刺话,我并不是说你是,只是他们不太可能这么说)...哈哈...不,他们可能只会说你需要将他们的字段映射到你的Web应用程序字段上。通常,他们有兴趣让你使用他们的API,否则开发API就没有意义了。因此,作为他们服务的消费者,他们倾向于帮助您。


0
在Oasis Integration团队的情况下,映射是他们要求您进行的测试,他们会提供一些带有样品订单的测试XML文件,您需要将其映射到您的数据,然后发布订单确认。
我知道这不是“映射”的常见用法,但他们的意思是,您已成功将Overstock字段映射到您的数据字段,并已完成他们要求进行生产API访问所需的测试API调用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接