DLL の構築およびテスト

REST API を呼び出して、最新のビットコイン価格を米ドルとユーロで返す DLL を構築します。

前提条件

  • プログラミングの基本的な理解と経験
  • C# をサポートする DLL としてのコード例を開発するための統合開発環境 (IDE) へのアクセス。

    IDE の例: Microsoft Visual Studio Community Edition

  • Automation Anywhere Enterprise クライアント にアクセスする
  • Bot Creator 権限
  • Automation Anywhere RPA プラットフォームの十分な理解 (タスク BotMetaBot、これらの機能に関する基本的な理解を含む)。
    ヒント: このトピックをレビューし、 Bot を構築する方法を理解します: Enterprise クライアント を使用した基本的な Bot の構築

広範なソリューション (MyApp4Lib) を構成する 4 つのプログラムがあります。このサンプル コードを入力して構築します。

次の 2 つの DLL が作成されます。
  • MyApp4Lib.dll
  • RestSharp.dll

手順

  1. メソッドのテストに使用するコードをコンパイルします。
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using MyApp4Lib;
    
    namespace MyApp4Test
    {
        class Program  // Test program for the classes 
        {
            static void Main(string[] args)
            {
                VisibleBotMethods vbm = new VisibleBotMethods();
                String UsdPrice = vbm.GetPriceOfBitcoin("usd");
                Console.WriteLine("\nPrice of Bitcoin in USD: " + UsdPrice);
                Console.ReadKey();
            }
        }
    }
    
  2. REST 呼び出しを調整してビットコイン価格を取得するコードをコンパイルします。
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace MyApp4Lib
    {
        public class VisibleBotMethods
        {
            public String GetPriceOfBitcoin(String Currency)
            {
                // Make GET call -- the Currency is the variable:  
                // usd for $Dollars, eur for Euros
                String URL = "https://api.cryptonator.com/api/ticker/btc-" + Currency;
    
                // Instantiate objects
                RestUtils ru = new RestUtils();  
                JsonUtils ju = new JsonUtils();
    
                // Make the REST call and return the JSON response
                String JsonResp = ru.CallRestGETNoAuth(URL);  
    
                // Retrieve just the price from the JSON as a String
                String BCPrice = ju.GetDataFromJsonResponse(JsonResp);
                return BCPrice;
            }
        }
    }
    
  3. REST 呼び出しを行うメソッドをコンパイルします。
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace MyApp4Lib
    {
        public class RestUtils      
        {
            public String CallRestGETNoAuth(String URL)
            {
            // Setting up a web request on the URL that we pass as a parameter, 
    	 // specifying a GET request for a JSON response
                System.Net.HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(URL);
                httpWebRequest.ContentType = "text/json";
                httpWebRequest.Method = "GET";
    
                // Submitting the request, getting the response, turning it into a string, 
    	     // and returning the response
                try
                {
                    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                    using (var streamReader = new System.IO.StreamReader(httpResponse.GetResponseStream()))
                    {
                        var result = streamReader.ReadToEnd();
                        return result;
                    }
                }
                catch (System.Net.WebException e)  // Catch error if URL is not valid
                {
                    return "Error:" + e.Message;
                }
            }
        }
    }
    
  4. JSON のレスポンスを処理してビットコイン価格を返すコードをコンパイルします。
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace MyApp4Lib
    {
        class JsonUtils  // Includes methods to process JSON
        {
            public String GetDataFromJsonResponse(String JsonResp)
            {
                RestSharp.RestResponse response = new RestSharp.RestResponse();
                response.Content = JsonResp;
    
                // Turning JSON structure into object / class structure 
                JsonDeserializer deserial = new JsonDeserializer();
                StdJsonResponseForCurrCheck x = deserial.Deserialize<StdJsonResponseForCurrCheck>(response);
                String Resp = "";
    
                // Identifying price within the class structure, and then return it
                Resp = x.ticker.price;
                return Resp;
            }
        }
        // Taking JSON response and turning it into classes
        public class Ticker
        {
            public string @base { get; set; }
            public string target { get; set; }
            public string price { get; set; }
            public string volume { get; set; }
            public string change { get; set; }
        }
        public class StdJsonResponseForCurrCheck
        {
            public Ticker ticker { get; set; }
            public int timestamp { get; set; }
            public bool success { get; set; }
            public string error { get; set; }
        }
    }
    

次のステップ

このタスクで作成した DLL を「高度な MetaBot を作成」の MetaBot に追加します。