Friday, July 9, 2021

Http get, post, put, delete வெர்ப்கள் ASP.NET WEB API.



இந்த கட்டுரையில் http வெர்ப்களான get, post, put, delete ஆகியவை ASP.NET WEB API-யில் எவ்வாறு பயன்படுகின்றன என்பது குறித்து காண இருக்கின்றோம்.

 

ASP.NET WEB API-யில் HTTP VERBS என்பதை நிகழ்த்துவதற்கான படி நிலைகள்.

படி -1.

ஒரு புதிய பிராஜெக்டை விசுவல்ஸ்டுடியோவில் திறந்து இடது பக்கம் விசுவல் c# என்பதில் web என்பதையும் மத்தியில் Asp.net web application என்பதையும் செலெக்ட் செய்து பிராஜெக்ட் பெயர் கொடுக்கவும்.அடுத்து வரும் டையலாக் பாக்சில் web api என்பதை தேர்வு செய்து ok கொடுக்கவும்.

 


 

 

 

படி 2

இப்பொழுது சொல்யூசன் எக்ஸ்ஃப்ளோரரில் asp.net mvc அப்ளிகேசனில் உள்ளது போல் ஒன்றுக்கு மேற்பட்ட ஃபோல்டெர்கள் இருக்கும். அதில் controllers ஃபோல்டெரில் valuecontrollrer என்று புதிதாய் ஒரு ஃபோல்டர் இருக்கும்.

அதில் பின் வரும் ஐந்து மெத்தட்கள் இருக்கும்.



இந்த கனட்ரோலரில் ஒரு ஸ்ட்ரிங்க் லிஸ்ட் வேரியபிளை உருவாக்கவும்.

அதற்கு மூன்று ஸ்ட்ரிங்குகளை மதிப்பிருத்தவும்.

  1. static List<string> languages = new List<string>() {   
  2.             "C#","ASP.NET","MVC"  
  3. };  

இப்பொழுது Get மெத்தட் எழுதவும் . இது languages என்ற ஸ்ட்ரிங லிஸ்டின் மதிப்புகளை ரிடர்ன் செய்யும்.

1.      ·  // GET api/values  

2.      public IEnumerable<string> Get()  

3.      {  

4.       return languages;  

5.   }   

இப்பொழுது ஒரு குறிப்பிட்ட லிஸ்ட் ஐட்டத்தை மட்டும் ரிடர்ன் செய்ய Get மெத்தடை ஒரு இன்ட் ஆர்க்கியூமெண்ட் செலுத்துவது பாஸ் செய்வது போல் ஓவர் லோட் செய்யவேண்டும். இது லிஸ்டின் ஒரு குறிப்பிட்ட இண்டெக்சில் உள்ள ஐட்டத்தை மட்டும் ரிடர்ன் செய்ய வேண்டும்.

  1. // GET api/values/5  
  2. public string Get(int id)  
  3. {  
  4.     return languages[id];  
  5. }   

ஒரு டேட்டாவை சேர்க்கவோ அல்லது  சேமிக்கவோ Post மெத்தட் பயன்படுகின்றது.

  1. // POST api/values  
  2. public void Post([FromBody]string value)  
  3. {  
  4.     languages.Add(value);  
  5. }   

ஒரு டேட்டாவை அப்டேட் மற்றும் டெலீட் செய்ய put, delete மெத்தட்கள் பயன்படுகின்றன.

  1. // PUT api/values/5  
  2. public void Put(int id, [FromBody]string value)  
  3. {  
  4.     languages[id] = value;  
  5. }  
  6.   
  7. // DELETE api/values/5  
  8. public void Delete(int id)  
  9. {  
  10.     languages.RemoveAt(id);  
  11. }   

 

படி 3

 

நாம் Fiddler பயன்படுத்தி http get, put, post, delete ஆக்சன் மெத்தட்களை கண்கானிக்க இருக்கின்றோல் இதை கீழ் வரும் முகவரியில் டவுன் லோட் செய்து நிறுவிக் கொள்ளவும்.

https://www.telerik.com/download/fiddler

பிராஜெக்ட் சொல்யூசனை பில்ட் செய்து நிரலை இயக்கவும்.

http://localhost:51860/api/values/

அதற்கு முன் Get மெத்தடில் ப்ரேக் பாயிண்ட் வைத்து நிரலை இயக்கவும். இது எந்த மெத்தட் அழைக்கப்படுகின்றது என்பதைக் காட்டும்.

 


மேலே உள்ள மெத்தடை பாராமீட்டர் ஏதும் இன்றி அழைக்கும் பொழுது Get மெத்தட் அழைக்கப்படுகின்றது.

கீழ்வருவது அதன் அவுட்புட்:(xml format).


 

index மதிப்பை பாராமீட்டர் ஆக அனுப்பும் பொழுது அது அந்த இண்டெக்சில் உள்ள குறிப்பிட்ட ஸ்ட்ரிங்கை மட்டும் ரிடர்ன் செய்யும்.

 

http://localhost:51860/api/values/1 


 

படி 4.

இப்பொழுது ஃபிட்லெர் பயன்படுத்தில் POST, PUT, DELETE மெத்தட்கள் எவ்வாறு அழைக்கப்படுகின்றன என்பதை கண்கானிப்போம்.

கீழே வருவதை காப்பி செய்து ஃபிட்லெர் கன்போசர் டேப்பை கிளிக் செய்து பேஸ்ட் செய்யவும். பிறகு என்டெர் தட்டவும்.

 


 

இப்பொழுது ஃபிட்லெரில் லேட்டெஸ்ட் URL ஐ கிளிக் செய்தால் அவுட்புட் காட்டப்படும்.


 

இப்பொழுது பிரவுசரை ரெஃப்ரெஸ் செய்யவும்.இப்பொழுது கம்போஸ் டேட்டை கிளிக் செய்து டிராப் டவுன் லிஸ்டில் Get என்பதை தேர்வு செய்யவும்.லேட்டஸ்ட் url ஐ கிளிக் செய்து டிராக் செது கம்போசர் டேட்டில் விடவும்.

Host, Connection, Catch-Control, User-Agent and Accept  போன்ற விவரங்கள் காட்டப்படும்.


 

ஒரு ஸ்ட்ரிங்கை புதிதாக சேர்த்தல்.

கம்போஸ் டேப்பை கிளிக் செய்து டிராப் டவுனில் post என்பதை தேர்வு செய்யவும்.  ரிக்வெஸ்ட் பாடியில் புதிய ஸ்டிரிங்கை டைப் செய்யவும்.

Content-Type:application/JSON என டைப் செய்து execute பட்டனை கிளிக் செய்யவும்.


 

இப்பொழுது இடது புறம் உள்ள லேடெஸ்ட்url ஆனதை டபிள் கிளிக் செய்தால் ரெஸ்பான்ஸ் ஆனது 204 no content என இருக்கும் காரணம் போஸ்ட் மெத்தட் ஆனது டிஃபால்ட் ரிடர்ன் டைப் வாய்ட் ஆகும்.

 

பிறகு புதிதான ஸ்ட்ரிங்க் சேர்க்கப்பட்டுள்ளதா என்பதை டெஸ்ட் செய்யவும்,.

டிராப்டவுனில் get என்பதை செலெக்ட் செய்யவும். ரிக்வெஸ்ட் பாடியில் உள்ளதை டெலீட் செய்யவும்.எக்சிக்யூட் பட்டனை கிளிக் செய்யவும், பிறகு இடது புறம் உள்ள லேட்டெஸ்ட் URL கிளிக் செய்தால் அவுட்புட் காட்டப்படும்.

 


இப்பொழுது அப்டேட் செய்வதற்கு டிராப் டவுனில் PUT என்பதை தேர்வு செய்யவும் பாடியில் புதிய மதிப்பை டைப் செய்யவும் . URL -ல் பாராமீட்டரை தேர்த்து டைப் செய்யவும்.பிறகு எக்சிக்யூட் பட்டனை கிளிக் செய்யவும்.



 

இப்பொழுது பேஜை ரெஃஃப்ரெஷ் செய்து கெட் மெத்தடை தேர்வு செய்து எக்சிகியூட் பட்டனை கிளிக் செய்து இடது புறம் உள்ள லேட்டெஸ்ட் URL ஆனதை டபிள் கிளிக் செய்தால் அப்டேட் செய்யப்பட்ட புதிய மதிப்பை காட்டலாம்.

 


இப்பொழுது ஒரு ஸ்ட்ரிங்கை டெலீட் செய்வதற்கு பக்கத்தை ரெஃப்ரெஸ் செய்து டிராப்டவுனில் DELETE என்பதை தேர்வு செய்து இண்டெக்சை URL உடன் இண்டெக்சை டைப் செய்து எக்சிகியூட் பட்டனை கிளிக் செய்தால் அந்த இண்டெக்சில் உள்ள மதிப்பு டெலீட் செய்யப்படும்.


 

நன்றி.

முத்து கார்த்திகேயன்,மதுரை.

 

 

 

 



ads Udanz

Thursday, July 8, 2021

ENUMS சி ஷார்ப்

 



இனம்ஸ் ஏன் பயன்படுத்த வேண்டும்?

சிஷார்ப்பில் இனம்ஸ் என்பது ஸ்ட்ராங்க்லி டைப்டு கான்ஸ்டன்ஸ் ஆகும்.

இப்பொழுது நம்மிடம் customer என்றொரு கிளாஸ் உள்ளது. அதில் name, gender என்று இரு பிராப்பர்ட்டிகள் உள்ளன.

இதில் gender ஒரு இன்டிஜெர் ஆகும். இதன் மதிப்பு முறையே

0-Unknown,

1-Male

2-female

கீழே ஒரு சான்று நிரல் உள்ளது.

using System;
public class Enums
{
    public static void Main()
    {
        Customer[] customers = new Customer[3];
        customers[0] = new Customer()
        {
            Name = "Mark",
            Gender = 1
        };
        customers[1] = new Customer()
        {
            Name = "Mary",
            Gender = 2
        };
        customers[2] = new Customer()
        {
            Name = "Sam",
            Gender = 0
        };
        foreach (Customer customer in customers)
        {
            Console.WriteLine("Name = {0} && Gender = {1}", customer.Name, GetGender(customer.Gender));
        }
    }


    public static string GetGender(int gender)
    {
        // The swicth here is less readable because of these integral numbers
        switch (gender)
        {
            case 0:
                return "Unknown";
            case 1:
                return "Male";
            case 2:
                return "Female";
            default:
                return "Invalid Data for Gender";
        }
    }
}


// 0 - Unknown
// 1 - Male
// 2 - Female


public class Customer
{
    public string Name { get; set; }
    public int Gender { get; set; }
}

 

,மேலே உள்ள நிரலில் Customer என்றொரு கிளாஸ் உள்ளது..இந்த கிளாஸின் ஆப்ஜெக்டுகள் அர்ரேயாக அறிவிக்கப்பட்டு தொடக்க மதிப்பிருத்தப் பட்டுள்ளன,.

 

இதில் GetGender என்றொரு மெத்தட் உள்ளது. இதற்கு gender -ன் இன்டிஜெர் மதிப்பை அனுப்பினால் அதன் gender ஸ்ட்ரிங்க் மதிப்பை ரிடர்ன் செய்யும்.

மேலே உள்ள நிரல் வரிகள் வாசிக்க்அ தகுந்ததாக இல்லை. மேலும் நிர்வாகிக்கவும் எளிது அல்ல.

இப்பொழுது கீழே உள்ள சான்று நிரலை கவனிக்கவும்.

using System;
public class Enums
{
    public static void Main()
    {
        Customer[] customers = new Customer[3];
        customers[0] = new Customer()
        {
            Name = "Mark",
            Gender = Gender.Male
        };
        customers[1] = new Customer()
        {
            Name = "Mary",
            Gender = Gender.Female
        };
        customers[2] = new Customer()
        {
            Name = "Sam",
            Gender = Gender.Unknown
        };
        foreach (Customer customer in customers)
        {
            Console.WriteLine("Name = {0} && Gender = {1}", customer.Name, GetGender(customer.Gender));
        }
    }


    public static string GetGender(Gender gender)
    {
        // The swicth here is now more readable and maintainable because 
        // of replacing the integral numbers with Gender enum
        switch (gender)
        {
            case Gender.Unknown:
                return "Unknown";
            case Gender.Male:
                return "Male";
            case Gender.Female:
                return "Female";
            default:
                return "Invalid Data for Gender";
        }
    }
}


public enum Gender
{
    Unknown = 0,
    Male = 1,
    Female = 2
}


public class Customer
{
    public string Name { get; set; }
    public Gender Gender { get; set; }
}

மேலே உள்ள நிரலில் enum அறிமுகப்படுத்தப் பட்டுள்ளது. இதில் மூன்று மெம்பர்கள் உள்ளன. ஒவ்வொன்றின் இன்டிஜெர் மதிப்பும் முறையே கொடுக்கப்பட்டுள்ளது. இப்பொழுது GetGender மெத்தடில் நாம் இப்பொழுது எழுதியுள்ள நிரலை கவனிக்கவும். முன்பு எழுதியதற்கும் இப்பொழுது எழுதியதற்கும் உள்ள வேறுபாட்டை கவனிக்கவும்.

இப்பொழுது நிரல் வரிகள் வாசிக்க தகுந்ததாகவும் நிர்வாகிக்க எளிதாகவும் உள்ளது.

மேலும் Enum பற்றிய குறிப்புகள்.

1. இனம்ஸ் எனப்படுவது எனுமுரேசன் ஆகும்.

2. இது ஸட்ராங்க்லி டைப்டு கான்ஸ்டன்ஸ் ஆகும். இனம் டைப்பிலிருந்து இன்டிஜெர் ஆகவோ அல்லது இண்டிஜெர் டைப்பிலிருந்து இனம் ஆகவோ மாற்ற் எக்ஸ்ப்ளிசிட் ஆக குறிப்பிட்டு டைப்காஸ்ட் செய்ய வேண்டும்.

அது போல் ஒரு இனம் டைப்பின் இன்டிஜெர் மதிப்பை மற்றொரு இனம் டைப்பிற்கு மதிப்பிருத்த முடியாது.

ஒரு இனம்மின் டிஃபால்ட் டைப் இன்டிஜெர் ஆகும்.

இதில் முதல் எளிமெண்டின் மதிப்பு 0 ஆகும். அதற்கடுத்த ,மதிப்புகள் டிஃபால்ட் ஆக ஒவ்வொன்றாய் அதிகரிக்கும்.

இதன் மதிப்புகளை நா,ம் விரும்பினால் மாற்றியமைக்கலாம்.

இனம்கள் வேல்யூ டைப் ஆகும்.

Enum என்ற கீவேர்டு இதை அறிவிக்க உதவுகின்றது. இது இதன் கீ மெம்பர்களையும் அதன் மதிப்பையும் அறிய  Getvalues, GetNames என்ற ஸ்டேட்டிக் மெத்தட்கள் பயன்படுகின்றன.

-நன்றி

முத்து கார்த்திகேயன்,மதுரை.

 

 

 

 

 

 

ads Udanz