如何使用 Azure 移动服务 API 功能
Posted
技术标签:
【中文标题】如何使用 Azure 移动服务 API 功能【英文标题】:How to use the Azure Mobile Service API feature 【发布时间】:2013-06-12 23:09:28 【问题描述】:API 功能已添加到 WAMS,我可以在其中定义自定义脚本。这似乎不赞成以前创建脚本表的做法。但是,我找不到任何关于如何使用它的描述。
哪些客户端可以访问此功能?可以在 ios 或 javascript 中使用吗?
【问题讨论】:
【参考方案1】:还有一些关于这个主题的帖子:http://blogs.msdn.com/b/carlosfigueira/archive/2013/06/14/custom-apis-in-azure-mobile-services.aspx(服务器端)和http://blogs.msdn.com/b/carlosfigueira/archive/2013/06/19/custom-api-in-azure-mobile-services-client-sdks.aspx(客户端)。
此外,由于您使用 ios 标记了您的问题,以下是您使用 MSClient
类的实例调用 API 的代码:
如果您的 API 只处理(接收/返回)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);
];
或使用请求正文 (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);
];
如果您的 API 处理非 JSON 数据,您可以使用其他选择器,该选择器采用 / 返回 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);
];
【讨论】:
已发布的框架存档和 GitHub 存储库之间是否存在一些延迟? github.com/WindowsAzure/azure-mobile-services repo 尚不包含此添加内容。 通常在 SDK 发布几天后的 repo 中。我猜到下周初它应该在那里...... 所以我已经尝试了你所展示的内容,虽然我确实得到了两个对象的结果,但它们总是显示为空白。想法? [self.client invokeAPI:@"pointsbygameperuser" body:nil HTTPMethod:@"GET" parameters:@@"Id":item // 作为查询字符串参数发送 headers:nil completion:^(NSArray *result, NSURLResponse *response, NSError *error) NSLog(@"Result: %d", [result count]); ];【参考方案2】:这可能会有所帮助:What’s new in Windows Azure Mobile Service : Api Script
【讨论】:
伟大的发现!请在您的答案中添加几行解释,使其更加独立,我会立即接受。【参考方案3】:我也找到了这个帮助:
http://www.windowsazure.com/en-us/develop/mobile/tutorials/create-pull-notifications-dotnet
基本上,您可以使用这种端点格式访问您的自定义 API:
https://service_name.azure-mobile.net/api/api_name
把它放在你的脚本上:
exports.get = function(request, response)
response.send(200, "Hello World");
;
并在 GET 上设置您的 API 权限以允许所有人,然后您可以使用浏览器或 fiddler 通过访问端点来测试您的 API:
https://service_name.azure-mobile.net/api/api_name
如果您没有更改您的许可,您必须在您的请求中添加如下标头代码:
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
【讨论】:
以上是关于如何使用 Azure 移动服务 API 功能的主要内容,如果未能解决你的问题,请参考以下文章
Azure 移动服务 Web Api 上的 SignalR CORS