我正在开发一个Android应用程序,它将严重依赖我正在编写的Web服务。 Android应用程序将向PHP Web服务提交HTTP POST
请求。我对参数方案的初步想法是(我遗漏了用于身份验证的params等):
但是,对我来说,这对参数方案来说似乎过于复杂/低效。必须有一个更好的方法,但我对HTTP POST
或一般的Web服务并不是非常有经验,所以我想不出更好的方法。使用这些参数,我需要一个 HUGE if/else if/else
或switch
块来确定请求想要做什么/得到什么。
以下是我在PHP Web服务端的主控制器/验证器类的方法定义:
public function validateUser($emailAddress, $password);
public function createUser($emailAddress, $handle, $passwordHash);
public function getUserByEmailAddress($emailAddress);
public function getUserByHandle($handle);
# the flags param is stuff like "Closes at night", "Hard to find", etc.
public function createLocation($title, $address, $lat, $long, $flags);
public function updateLocationFlags($locationId, $flags);
public function getLocationById($id);
public function getLocationByTitle($title);
public function getLocationByAddress($address);
public function getLocationsByNearby($lat, $long, $radiusInMiles);
public function upvoteLocation($locationId);
public function downvoteLocation($locationId);
public function destroyLocation($locationId);
# takenBy param is the handle of the user who took the photo
public function addImageToLocation($locationId, $takenBy, $imgAddress);
public function removeImageFromLocation($imgId);
public function getImagesByLocationId($locationId);
public function getImagesByTakenBy($takenBy);
public function upvoteImage($imgId);
public function downvoteImage($imgId);
所以我需要一个HTTP POST
参数方案,它允许PHP Web服务轻松有效地确定需要调用的例程并适当地检查所需的例程参数。我提议的方案对我来说似乎不必要的复杂,但我似乎无法想到任何更简单的解决方案。
提前感谢大家的帮助!
答案 0 :(得分:0)
如果您使用的是Symfony,您可以使用FOSRestBundle及其助手,ymls等来完成样板工作。
看看:
http://symfony.com/doc/current/bundles/FOSRestBundle/index.html http://allan-simon.github.io/blog/posts/create-a-rest-api-with-symfony2/ http://obtao.com/blog/2013/05/create-rest-api-in-a-symfony-application/