2016-03-08 86 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 它的工作原理应该是它应该的。