基于现有议定书的议定书是否仍然是议定书?

时间:2010-07-22 11:06:24

标签: api protocols xml-rpc

我正在为使用手机的动态共乘服务开发一个开放的“协议”。 它基于XML-RPC并使用编组对象作为参数(非常像Soap)。

草案中将记录每个实体和操作。 例如,查看要在协议中使用的文档化Prefs对象的第一个框架。


Prefs对象

存储由创建它的人[...]

设置的旅程的首选项
Attribute   Type       Requirement
age         string      MAY
nonsmoking  boolean     MAY
gender      string      MAY
drive       boolean     MAY
ride        boolean     MAY
  • 即使Prefs对象的所有属性都是可选的,在执行XML-RPC调用时也必须提供Prefs类型的对象。如果提供了零属性,则必须提供一个空的XML-RPC结构表示空对象
  • 性别 必须 {'M','F','B'} ,意为'男', '女'或'两'

以下是协议操作中使用的有效Prefs对象:

<struct>
 <member>
  <name>nonsmoking</name>
  <value>
   <boolean>0</boolean>
  </value>
 </member>
 <member>
  <name>gender</name>
  <value>
   <string/>
  </value>
 </member>
 <member>
  <name>ride</name>
  <value>
   <boolean>0</boolean>
  </value>
 </member>
 <member>
  <name>drive</name>
  <value>
   <boolean>0</boolean>
  </value>
 </member>
 <member>
  <name>age</name>
  <value>
   <string>18-40</string>
  </value>
 </member>
</struct>

使用Prefs对象的操作将具有HTTP POST操作的完整描述,其中包含所有详细信息等。

你会称这个为协议还是API?即,如果我们编写一个基于另一个协议的协议(在这种情况下是XML-RPC),衍生工作又是一个协议吗?

我想知道,因为我会在学士论文中谈论这个问题而且我不想说一些非常愚蠢的事情:)

谢谢!

2 个答案:

答案 0 :(得分:3)

严格地说,每个API都是一个协议。协议通常基于其他协议。 TCP基于IP。 HTTP位于TCP上,HTTPS基于HTTP,依此类推。

您的协议不是网络协议,而是应用程序级通信协议。

答案 1 :(得分:2)

协议本身就像一种机制,提供一组在网络中的节点上工作的相关功能。 协议的上层可以是应用程序或其他协议。 该协议为上层提供API(也称为服务访问点)以访问其功能。