我是如何創建一個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,它處於一個永久狀態的掛起。它沒有做做的比其他任何東西。