设计Web服务

时间:2013-07-14 20:03:59

标签: web-services rest

我正在尝试设计一种用于停车票生成的网络服务。

其中一个API是 1.输入:客户存入的金额。 2.输出:返回停车票有效的时间。

e.g。考虑停车费是每小时1英镑,如果输入是3英镑,如果当前时间是11:30,那么网络服务应该返回2.30pm。希望这是有道理的。

我正在考虑使用RESTful服务,但我无法弄清楚应该是什么资源。 RESTful服务听起来不是一个好选择。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

资源可能只是“停车场”。商业行动是“创建”停车罚单。它应该映射到HTTP POST,因为服务器要创建资源(停车票)。

POST /parkingtickets/
Body:   {amount: <amount>, starttime: <date-time>}
Return: OK, and {ticketid: <id>, endtime: <data-time>}

您可以在here

中详细了解HTTP谓词的用法

答案 1 :(得分:0)

之前我必须做类似的事情。

我构建了一个php app / site,你可以调用这样的函数:    example.com/service/calculateparkingtime/?deposit=3.50 它会打印出这样的json(带有json标题):

{state:true,parking_time:3.5}

状态用于所有响应,如果有错误,还有一个“错误”键,其中包含错误消息:

{state:false, error:"Parking time exceeds the working hours of the car park.", errorCode:"Park01",parking_time:2.5,exceeding_amount:1}

如果你的API包含这么几个小函数,你也可以这样做。

服务与php中的CURL或file_get_contents一起使用。

您可以使用其他语言(如ASP.NET等)构建相同的应用程序。

答案 2 :(得分:0)

如果我正确理解了问题,你只需要问题/计算的答案,即你应该使用HTTP GET:

GET foobar.tld/ticketExpires/<amountInGBP> -> expiretime

我可能会返回日期+时间,因为200美元会在几天后返回...

你的例子是:

GET foobar.tld/ticketExpires/3 -> "2:30pm" (or preferably "YYYY-MM-DD 14:30:00")

问题:Web服务和客户端之间的不同时区?金额总是以英镑计算?

您还需要考虑响应/答案的格式应该是什么:JSON,XML,明文,客户端“应该”使用标头指定所需的格式。如果您有一个简单的客户端,只需返回客户端理解的smoe默认格式。