Showing posts with label asp.net web api in Tamil. Show all posts
Showing posts with label asp.net web api in Tamil. Show all posts

Thursday, October 14, 2021

Asp.net web api போஸ்ட் மெத்தட்.


இந்த கட்டுரையில் போஸ்ட் மெத்தட்  ASP.NET WEB API-இல் எவ்வாறு பயன்படுத்துவது என காண இருக்கின்றோம். இதற்கு முந்தைய இதழில் வெளியான ASP.NET WEB API மற்றும் எஸ்கியூஎல் சர்வரும் என்ற கட்டுரையின் தொடர்ச்சி இது.

ASP.NET WEB API -ல் போஸ்ட் மெத்தட் ஆனது டேட்டா பேசில் உள்ள டேபிளில் புதிய ரோ ஒன்றை இன்செர்ட் செய்ய பயன்படுகின்றது.

இப்பொழுது Employees டேபிளில் புதிய employee பற்றிய டேட்டாவை இன்செர்ட் செய்வது குறித்து காண இருக்கின்றோம்.

கண்ட் ரோலரில் EmployeesController என்பதில் post மெத்தட் ஒன்றை எழுதவும்.இதற்கு Employee கிளாசின் ஆப்ஜெக்ட் ஆக ஒரு employee ஆப்ஜெக்டை பாராமீட்டராக அனுப்புவோம்.எம்ப்ளாயி பாராமீட்டர் ஆனது FromBody என்ற ஆட்ரிபியூட் உடன் குறிப்பிடவும்.இது வெப் API க்கு டேட்டாவை ரிகுவஸ்ட் பாடியில் இருந்து எடுத்துக்கொள்ளுமாறு கூறுகின்றது.

public void Post([FromBody] Employee employee)

{

    using (EmployeeDBEntities entities = new EmployeeDBEntities())

    {

        entities.Employees.Add(employee);

        entities.SaveChanges();

    }

}

 

அப்ளீகேசனை பில்ட் செய்து fiddler என்பதை இயக்கவும்.

1. http verb என்பதை post என்று செலெக்ட் செய்யவும்

2. content-type :application/json என்று குறிப்பிடவும். இது சர்வருக்கு இன்செர்ட் செய்யப்பட வேண்டிய டேட்டா JSON ஃபார்மட்டில் இருக்கின்றது என்று கூறுகின்றது.

3. REQUEST BODY ஆனதில் கீழே உள்ள படத்தில் உள்ளவாறு JSON பார்மட்டில் டேட்டாவை குறிப்பிடவும்.

4. கடைசியில் EXECUTE என்ற பட்டனை கிளிக் செய்யவும்.


மேலே உள்ள நிரல் சர்வரில் டேட்டாவை இன்செர்ட் செய்கின்றது. என்ன பிரச்சனை எனில் போஸ்ட் மெத்தடின் ரிடர்ன் டைப்பாக VOID என குறிப்பிட்டுள்ளோம்.

எனவே ஸ்டேட்டஸ் கோட் 204 NOT FOUND எனக்காட்டுகின்றது.உண்மையில் புதிதாக டேட்டாவை ஆட் செய்யும் பொழுது 201 item created எனக் காட்ட வேண்ட்டும்.

அதை அடைய போஸ்ட் மெத்தடை கீழே உள்ளவாறு மாற்றியமைக்கவும்.

public HttpResponseMessage Post([FromBody] Employee employee)

{

    try

    {

        using (EmployeeDBEntities entities = new EmployeeDBEntities())

        {

            entities.Employees.Add(employee);

            entities.SaveChanges();

 

            var message = Request.CreateResponse(HttpStatusCode.Created, employee);

            message.Headers.Location = new Uri(Request.RequestUri +

                employee.ID.ToString());

 

            return message;

        }

    }

    catch (Exception ex)

    {

        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);

    }

}

 

இப்பொழுது ஃபிட்லருக்கு மற்றொரு போஸ்ட் ரிகுவஸ்ட் ஒன்றை அனுப்பவும். 201 item created என செய்தி காட்டப்படுவதை கவனிக்கவும்.அத்துடன் புதிதாக  உருவாக்கப்பட்ட டேட்டாவின் url ஆனதயும் அனுப்புகின்றது.


இப்பொழுது Get மெத்தடையும் மாற்றியமைப்போம்.ஏற்கனவே இல்லாத டேட்டாவின் id குறிப்பிட்டு அதை காணும் பொழுது நல் மதிப்பு ரிடர்ன் செய்யப்பட்டு 200 ok என காட்டுகின்றது. REST -ன் ஸ்டாண்டர்ட் படி ஒரு ஐட்டம் இல்லாத பொழுது 204 NOT FOUND எனக்காட்ட வேண்டும்.அதன் படி மாற்றியமைப்போம்.

public HttpResponseMessage Get(int id)

{

    using (EmployeeDBEntities entities = new EmployeeDBEntities())

    {

        var entity = entities.Employees.FirstOrDefault(e => e.ID == id);

        if (entity != null)

        {

            return Request.CreateResponse(HttpStatusCode.OK, entity);

        }

        else

        {

            return Request.CreateErrorResponse(HttpStatusCode.NotFound,

                "Employee with Id " + id.ToString() + " not found");

        }

    }

}

இப்பொழுது employee id 101 என்ற டேட்டாவை பெறுமாறு ரிகுவஸ்ட் அனுப்பினால் 404 not found என்பதுடன் "Employee with Id 101 not found"

பிழை சுட்டப்படுகின்றது.

கவனத்தில் கொள்வதற்கு.

1. ஒரு மெத்தடின் ரிடர்ன் டைப் வாய்ட் என்றால் 204 no content என்பது ரிடர்ன் ஆகின்றது.

2. புதிய ஐட்டம் உருவாக்கும் பொழுது 201 item created எனக்காட்ட வேண்டும்.

3. 201 உடன் புதிதாக உருவாக்கபட்ட ஐடியின் url என்பதையும் காட்ட வேண்டும்.

4. ஒரு குறிப்பிட்ட ஐட்டம் இல்லாத பொழுது 404 not found என்பதுடன்

"Employee with Id 101 not found" என்பது போன்று செய்தியும் காட்டப்பட வேண்டும்.

நன்றி.

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

 

 

ads Udanz

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