iT邦幫忙

0

尋求C# API 教學範例

您好:
請問是否有 C# API範例
WEB 對 WEB
WEB 對 WIN FORM

另外,請問
一般都是 自己去抓資料
還是會 自己 自動送出資料給對方,對方接收後再做新增/修改/刪除

謝謝!

API 只是一個溝通的方法,雙方想怎麼使用,是你們自己定義,並沒有一般是怎樣
Yaowen iT邦新手 4 級 ‧ 2021-08-25 10:06:21 檢舉
.Net 不就有預設範本 範例了?
只要你的程式能連到對方那邊(API)
根本沒有分別

舉例來說,我寫了一個 WebAPI放在網站上,任何Client端程式(不管是手機APP、另一個網站、Windows Form)只要他們能連上Internet,能透過 http或 https連上我的WebAPI,通常都能呼叫、使用的

2 個回答

2
Darwin Watterson
iT邦研究生 2 級 ‧ 2021-08-24 23:55:10

教學課程:使用 ASP.NET Core 建立 Web API

除了上面的官網教學範例外,直接去 youtube 找更快!
.NET C# API 已經是『熟透了』的技術!

1
Yaowen
iT邦新手 4 級 ‧ 2021-08-25 10:17:06

網路上其實有很多 但我先貼一個我自己寫的API範例給你

另外接收端其實沒有限定WEB or WIN FORM 寫好API後 不管用哪種方式都可以使用

Controllers

#region 查詢會員資料
 /// <summary>
 /// 查詢會員資料
 /// </summary>
 /// <response code="S001">查詢成功</response>
 /// <response code="E001">查無資料</response>
 /// <response code="E002">不在效期內</response>
 /// <response code="E003">未知錯誤</response>
 ///  <remarks>
///   {
///        "MemberId": "1111",	
///        "MemberName": "11111",
///     }
 ///  </remarks>
[HttpPost("GetMember")]
public Result2<MemberData> GetMember([FromBody] Member member){

            

var Config = new Config();
Config.connectionString = _config.GetValue<string>("connectionString");
Result2<MemberData> result = new Result2<MemberData>();

if (String.IsNullOrEmpty(member.MemberId) && String.IsNullOrEmpty(member.MemberName))
            {
                result.Code = "E001";
                result.Message = "查無資料";
                result.Stauts = "失敗";
                return result;
            }

try{
   using (var conn = new MySqlConnection(Config.connectionString)){

     conn.Open();

     using (var command = conn.CreateCommand()) {
  
   command.CommandText = "SELECT MemberId,MemberName FROM Member WHERE 1 = 1 ";
   if (!String.IsNullOrEmpty(member.MemberId)){
      command.CommandText += " And memberid like @MmeberId ";
      command.Parameters.AddWithValue("@MmeberId", "%" + member.MemberId);
    }

   if (!String.IsNullOrEmpty(member.MemberName)) {
      command.CommandText += " And MemberName like @MemberName ";
      command.Parameters.AddWithValue("@MemberName", "%" + member.MemberName);
   }


   using (var reader = command.ExecuteReader()){
         if (reader.HasRows){
          result.Code = "S001";
          result.Message = "查詢成功";
           result.Stauts = "成功";

           while (reader.Read()){
             
           result.Data.Add(new MemberData() { 
                                    
           MemberId = (reader.IsDBNull(reader.GetOrdinal("MemberId"))) ? "" : (string)reader["MemberId"],
    MemberName = (reader.IsDBNull(reader.GetOrdinal("MemberName"))) ? "" : (string)reader["MemberName"]
          });
   }                         
                                return result;
                            }
                            else
                            {
                                result.Code = "E001";
                                result.Message = "查無資料";
                                result.Stauts = "失敗";
                                return result;
                            }
                        }
                    }


                }
            }
            catch (Exception ex)
            {
                result.Code = "E003";
                result.Message = ex.Message;
                result.Stauts = "未知錯誤";
                return result;
            }

        }

        #endregion                               

MemberData Class

    public class MemberData
    {
             public string MemberId { get; set; }
            public string MemberName { get; set; }
        
    }

Result2 Class

   public class Result2<T>
    {
        public string Code { get; set; }
        public string Message { get; set; }

        public string Stauts { get; set; }


        public List<T> Data { get; set; } = new List<T>();

    }

另外如果有使用 Swagger 結果會是下圖
https://ithelp.ithome.com.tw/upload/images/20210825/20140001IxxC6HtLis.png

noway iT邦新手 4 級 ‧ 2021-08-26 19:54:02 檢舉

先謝謝大家

我要發表回答

立即登入回答