在Azure的APP Serivce例子定制API搜索Android客户端(Custom API i

2019-09-25 20:20发布

我需要为微软Azure应用服务定制的API的工作示例。 我无法得到任何有用的或工作信息/例子为,或者他们只给出了过时的每一次不同的做法?!?! 现在我有一个工作表控制器,它从数据库中获取信息,并使其返回到我的Android客户端。 现在,我需要定义一个定制的API控制器得到一个字符串返回。 在这些例子中,他们都在发送对象的服务,才能得到一个对象返回。 我不想送什么东西给了API,只是检索一些信息从一个GET请求回来。

问候

Answer 1:

//编辑 - 添加/编辑的客户机/服务器代码发布字符串。

您可以使用下面的代码做就自动生成的API控制器Visual Studio中的GET请求创建(ValuesController)。

private void getStringFromAzure() throws MalformedURLException {

    // Create the MobileService Client object and set your backend URL
    String yourURL = "https://yourApp.azurewebsites.net/";
    MobileServiceClient mClient = new MobileServiceClient(yourURL, this);

    // Your query pointing to yourURL/api/values
    ListenableFuture<JsonElement> query = mClient.invokeApi("values", null, GetMethod, null);

    // Callback method
    Futures.addCallback(query, new FutureCallback<JsonElement>() {
        @Override
        public void onSuccess(JsonElement jsonElement) {

            // You are expecting a String you can just output the result.
            final String result = jsonElement.toString();

            // Since you are on a async task, you need to show the result on the UI thread
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(mContext, result, Toast.LENGTH_LONG).show();
                }
            });
        }

        @Override
        public void onFailure(Throwable throwable) {
            Log.d(TAG, "onFailure: " + throwable.getMessage());
        }
    });
}

public void sendString(final String someString) throws MalformedURLException {

        // Your query pointing to /api/values/{String}
        ListenableFuture<JsonElement> query = mClient.invokeApi("values/" + someString, null, PostMethod, null);

        // Callback method
        Futures.addCallback(query, new FutureCallback<JsonElement>() {
            @Override
            public void onSuccess(JsonElement jsonElement) {

                // You are expecting a String you can just output the result.
                final String result = jsonElement.toString();
            }

            @Override
            public void onFailure(Throwable throwable) { }
        });
}

后端API:(ValuesController)

{
    // Use the MobileAppController attribute for each ApiController you want to use  
    // from your mobile clients 
    [MobileAppController]
    public class ValuesController : ApiController
    {
        // GET api/values
        public string Get()
        {
            return "Hello World!";
        }

        // POST api/values/inputString
        public string Post(string inputString)
        {
            return inputString;
        }
    }
}

您也可以沿着以下方式发送参数:

List<Pair<String, String>> parameters = new ArrayList<>();

parameters.add(new Pair<>("name", "John"));
parameters.add(new Pair<>("password", "fourwordsalluppercase"));

ListenableFuture<JsonElement> query = client.invokeApi("yourAPI", PostMethod, parameters);

或在体内JSON:

JsonObject body = new JsonObject();

body.addProperty("currentPassword", currentPassword);
body.addProperty("password", password);
body.addProperty("confirmPassword", confirmPassword);

ListenableFuture<JsonElement> query = mClient.invokeApi("yourAPI", body, PostMethod, null);


Answer 2:

根据我的理解,我觉得有两个部分,你的问题,其中包括如下。 我认为你可以分别指两个部分,以获得答案,写自己的例子。

  1. 如何定义在Azure上移动应用定制的API从数据库中检索数据? 请参阅节Custom APIs知道如何与Azure的移动应用后端做。

  2. 如何调用从Android应用程序定制API? 请参阅部分How to: Call a custom API知道如何与Android SDK做。



文章来源: Custom API in Azure APP Serivce examples searched for Android Client