2013-06-12 28 views
5

An API tính năng đã được thêm vào WAMS nơi tôi có thể xác định tập lệnh tùy chỉnh. Điều này dường như không chấp nhận thực hành trước đây của việc tạo ra một bảng script. Tuy nhiên, tôi không thể tìm thấy bất kỳ mô tả về cách tôi có thể sử dụng nó.Cách sử dụng tính năng API dịch vụ di động Azure

Khách hàng nào có thể truy cập tính năng này? Nó có thể được sử dụng từ iOS hoặc Javascript?

enter image description here

Trả lời

6

Và một vài bài đăng khác về chủ đề này: http://blogs.msdn.com/b/carlosfigueira/archive/2013/06/14/custom-apis-in-azure-mobile-services.aspx (phía máy chủ) và http://blogs.msdn.com/b/carlosfigueira/archive/2013/06/19/custom-api-in-azure-mobile-services-client-sdks.aspx (phía máy khách).

Ngoài ra, kể từ khi bạn gắn thẻ câu hỏi của bạn với ios, đây là mã bạn muốn sử dụng để gọi API sử dụng một thể hiện của lớp MSClient:

Nếu API của bạn chỉ giao dịch với (nhận/lợi nhuận) dữ liệu JSON :

MSClient *client = [MSClient clientWithApplicationURLString:@"https://your-service.azure-mobile.net" 
              applicationKey:@"your-application-key"]; 
[client invokeApi:@"calculator/add" 
      body:nil 
     HTTPMethod:@"GET" 
     parameters:@{@"x":@7, @"y":@8} // sent as query-string parameters 
      headers:nil 
     completion:^(id result, NSURLResponse *response, NSError *error) { 
    NSLog(@"Result: %@", result); 
}]; 

Hoặc với một cơ thể theo yêu cầu (POST):

[client invokeApi:@"calculator/sub" 
      body:@{@"x":@7, @"y":@8} // serialized as JSON in the request body 
     HTTPMethod:@"POST" 
     parameters:nil 
      headers:nil 
     completion:^(id result, NSHTTPURLResponse *response, NSError *error) { 
    NSLog(@"Result: %@", result); 
}]; 

Nếu giao dịch API của bạn với n dữ liệu trên JSON, bạn có thể sử dụng công cụ chọn khác có/trả về đối tượng NSData:

NSData *image = [self loadImageFromSomePlace]; 
[client invokeApi:@"processImage" 
      data:image 
     HTTPMethod:@"POST" 
     parameters:nil 
      headers:nil 
     completion:^(NSData *result, NSHTTPURLResponse *response, NSError *error) { 
    NSLog(@"Result: %@", result); 
}]; 
+0

Có độ trễ nào giữa kho lưu trữ khung công khai và kho lưu trữ GitHub không? https://github.com/WindowsAzure/azure-mobile-services Repo không chứa phần bổ sung này. – allprog

+0

Thường trong repo một vài ngày sau khi SDK được xuất bản. Tôi đoán là vào đầu tuần tới nó nên ở đó ... – carlosfigueira

+0

Vì vậy, tôi đã thử chính xác những gì bạn đang hiển thị và mặc dù tôi nhận được kết quả với hai đối tượng, chúng luôn luôn hiển thị trống. Ý tưởng? [tự.client invokeAPI: @ "pointsbygameperuser" body: nil HTTPMethod: @ "GET" thông số: @ {@ "Id": item} // được gửi dưới dạng tham số chuỗi truy vấn tiêu đề: nil hoàn thành:^(NSArray * result , Phản hồi NSURLResponse *, lỗi NSError *) { NSLog (@ "Kết quả:% d", [số kết quả]); }]; – George

5

tôi tìm thấy một trợ giúp này quá:

http://www.windowsazure.com/en-us/develop/mobile/tutorials/create-pull-notifications-dotnet

về cơ bản bạn có thể truy cập API tùy chỉnh bằng cách sử dụng định dạng cuối cùng thời điểm này:

https://service_name.azure-mobile.net/api/api_name

đặt này trên kịch bản của bạn:

exports.get = function(request, response) {  
    response.send(200, "Hello World"); 
}; 

và thiết lập sự cho phép API của bạn trên GET cho phép tất cả mọi người, sau đó bạn có thể sử dụng trình duyệt hoặc cáy để kiểm tra API của bạn bằng cách truy cập vào cuối điểm:

https://service_name.azure-mobile.net/api/api_name

nếu bạn không thay đổi sự cho phép của bạn, bạn cần phải đặt mã tiêu đề như sau theo yêu cầu của bạn:

GET https://service_name.azure-mobile.net/api/test HTTP/1.1 
User-Agent: Fiddler 
Content-type: application/json 
X-ZUMO-APPLICATION: your-manage-key-here