Updated on 2023-02-28 GMT+08:00

C#

Scenarios

To use C# to call an API through App authentication, obtain the C# SDK, open the project file in the SDK, and then call the API by referring to the API calling example.

Preparing the Environment

  • You have obtained the domain name, request URL, and request method of the API as well as the key and secret (or AppKey and AppSecret of the client) of the integration application. For details, see Preparations.
  • You have installed Visual Studio 2019 version 16.8.4 or later. If not, download Visual Studio from the Visual Studio official website and install it.

Obtaining the SDK

Log in to the ROMA Connect console, choose API Connect > API Calling, and download the SDK. The directory structure after the decompression is as follows:

Name

Description

apigateway-signature\Signer.cs

SDK code

apigateway-signature\HttpEncoder.cs

sdk-request\Program.cs

Sample code for signing requests

backend-signature\

Sample project for backend signing

csharp.sln

Project file

licenses\license-referencesource

Third-party licenses

Opening the Sample Project

Double-click csharp.sln in the SDK package to open the project. The project contains the following:

  • apigateway-signature: Shared library that implements the signature algorithm. It can be used in the .Net Framework and .Net Core projects.
  • backend-signature: Example of a backend service signature.
  • sdk-request: Example of invoking the signature algorithm. Modify the parameters as required. For details about the sample code, see API Calling Example.

API Calling Example

  1. Import the SDK to the project.

    1
    using APIGATEWAY_SDK;
    

  2. Generate a new signer and enter the key and secret of the integration application.

    1
    2
    3
    Signer signer = new Signer();
    signer.Key = "4f5f626b-073f-402f-a1e0-e52171c6100c";
    signer.Secret = "******";
    

  3. Generate an HttpRequest, and specify the method, request URL, and body.

    1
    2
    3
    HttpRequest r = new HttpRequest("POST",    
                        new Uri("https://c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.com/app1?query=value"));
    r.body = "{\"a\":1}";
    

  4. Add the x-stage header to the request to specify an environment name. Add other headers to be signed as necessary.

    1
    r.headers.Add("x-stage", "RELEASE");
    

  5. Execute the following function to generate HttpWebRequest, and add the X-Sdk-Date and Authorization headers for signing the request:

    1
    HttpWebRequest req = signer.Sign(r);
    

  6. If the subdomain name allocated by the system is used to access the API of HTTPS requests, ignore the certificate verification. Otherwise, skip this step.

    1
    System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(delegate { return true; });
    

  7. Access the API and view the access result.

    1
    2
    3
    4
    5
    6
    var writer = new StreamWriter(req.GetRequestStream());
    writer.Write(r.body);
    writer.Flush();
    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
    var reader = newStreamReader(resp.GetResponseStream());
    Console.WriteLine(reader.ReadToEnd());