2016-03-08 87 views
0

我是如何創建一個RESTful API達特我可以將呼叫確保不是100%,但我想嘗試。我寫了下面的代碼:飛鏢寧靜服務器犯規顯示響應數據

import "package:rpc/rpc.dart"; 
import "dart:io"; 
final ApiServer _apiServer = new ApiServer(prettyPrint:true); 
main() async{ 
    _apiServer.addApi(new TestServer()); 

    HttpServer server = await HttpServer.bind(InternetAddress.ANY_IP_V4, 8088); 
    server.listen(_apiServer.httpRequestHandler); 
    print('Server listening on http://${server.address.host}:' 
     '${server.port}'); 
} 

@ApiClass(name:'test_server', version: 'v1', description: 'This is a test server api to ping for some quick sample data.') 
class TestServer { 

    @ApiMethod(method:'GET', path: 'users') 
    List<User> getUsers(){ 
    List<User> users = new List<User>(); 

    return users; 
    } 

    @ApiMethod(method: 'GET', path: 'users/{id}') 
    User getUser(int id){ 
    User u; 

    ///TODO: Guts of User. 
    u = new User(id, "f_test_$id", "f_test_$id"); 

    return u; 
    } 

    @ApiMethod(method:'POST', path: 'users/user/{id}/add') 
    User postUser(int id, UserData usr){ 
    User u; 

    ///TODO: Post the user. 
    u = User.fromUsrData(usr); 

    return u; 
    } 
} 

這是一個非常簡單的,小的,實際上心不是做任何事情。

當我跑鏢文件,它會這樣說:

Observatory listening on http://127.0.0.1:64969 
Server listening on http://0.0.0.0:8088 

所以這讓我相信,我應該能夠ping服務器在本地主機。我在我的瀏覽器中打電話給http://localhost:8088/test_server/v1/users

它說:{"error":{"code":400,"message":"Invalid request, missing API name and/or version: http://localhost:8088/."}}它讓我困惑。

爲什麼我在我的定義或如何訪問本地主機API做錯事的地方?

編輯看來,當我去那個URL,它處於一個永久狀態的掛起。它沒有做做的比其他任何東西。

回答

0

問題有更深的瞭解後,改變周圍等的名字,看來,我的服務器是有,所以我需要結束達特執行,並重新啓動服務器的一些問題。

當試圖再次去鏈接:http://localhost:8088/test/v1/users 它的工作原理應該是它應該的。