2013-01-25 49 views
0

因此,我正在编写一个API,我很害怕我写的代码会很快变得混乱。RESTful API客户端交互

一些页面需要从API的几个不同的资源中获取数据,并且我到处都有大量的try和catch语句。例如:

$topic_id = 100; 
try 
{ 
    $topic = AwesomeAPI::get('topics/' . $topic_id); 
    $parts = AwesomeAPI::get('parts?topic_id=' . $topic_id); 
    try 
    { 
     // Get another resource here 
    } 
    catch (Exception $e) 
    { 
     // Error 
    } 
} 
catch (Exception $e) 
{ 
    return Response::error('404'); 
} 

我确信这段代码非常混乱,如果我必须循环访问资源并获取循环中的另一个资源,情况会变得更糟。呸。

我想知道如何以一种整洁的方式最好地处理客户端与API的交互。

+0

在我看来,你应该有一个类内的所有API逻辑,因此内部的方法。因此,不要编写像发布的代码,你可以写这样的代码:'$ api = new AwesomeAPI(); $ topic = $ api.GetTopic($ topic_id); 。 。 。 ' – juanreyesv

+0

对,当然!并处理方法中的异常? – Sneaksta

+0

这取决于你想如何处理异常。如果你在API中捕获它们,那么API应该能够返回一条错误消息,应用程序也应该能够检索该消息并做一些事情。 – juanreyesv

回答

1

正如我之前所说,在我看来,你应该有一个类内的所有API逻辑,因此内部的方法。因此,而不是写像一个贴代码,你可以写这样的事情:

$api = new AwesomeAPI(); 
$topic = $api->GetTopic($topic_id); 

而且你AwesomeAPI类可以是这个样子:

public class AwesomeAPI() 
{ 
    public $topic_url = 'somewebsite.com/topics?id{0}'; 

    function GetTopic($topicId) 
    { 
     //Some code here 
     $response = 'Some response (could be a JSON Document)'; 
     return $response; 
    } 
} 

这样你的代码的应用程序将会更加优雅和清晰。

希望这可以帮助你

+0

简单但有帮助。非常感谢你! – Sneaksta