我希望从现有的API创建一个Web服务。现有API来自单独的Windows程序,允许计算2个以上位置之间的里程数。 API在C#中。还有不同类型的计算(最短距离,最低成本等)。
我对如何创建允许多个位置的RESTFUL Web服务感到困惑。 RESTFUL API示例中的示例显示了一个示例api / books / 1 / To Kill A Mockingbird /将获取一本书的记录。但这对多个地点有何影响?它是api / sd / Kansas City,MO / Chicago,IL / Miluwake,WI?我怎么知道我是否想要计算2对10个位置?我可以对其进行编程以在URL中输入10个位置吗?
答案 0 :(得分:1)
您不必使用网址片段来接受参数。您可以使用带有地名的查询字符串参数,例如,以分号分隔,然后在代码中将它们拆分。
/api/sd?cities=Kansas City,MO;Chicago,IL;Miluwake,WI
然后在您的代码中使用Request.QueryString["cities"].Split(';');
答案 1 :(得分:1)
我认为随着您的路线增长,您可能遇到其他问题,例如网址过长(网址大小有限,据我所知 - https://stackoverflow.com/a/1051565/507025)。如果您将拥有可以接受无数个参数的API,我认为您可能希望执行一些操作,例如使用请求发送JSON对象,以便API控制器可以处理它。
此外,代码可以更简单地处理JSON对象。