İçeriğe geç

.Net Core’de Rest Api’ye GET, POST İşlemi

Merhaba arkadaşlar, bugün sizlere .net core web uygulaması üzerinden bir rest apiye get, post işlemlerinin nasıl yapılacağını göstermek istiyorum.

Öncelikle, rest api projesi oluşturuyoruz, sonrasında hemen apiyi yazıyoruz.

 [Produces("application/json")]
    [Route("api/photos/")]
    [ApiController]
    public class PhotosApiController : ControllerBase
    {
        [HttpPost]
        [Route("MediaUploud")]
        public async Task MediaUploudTask([FromForm] MediaUploudDto model)
        {
            if (model.File != null)
            {
                var fileName = (Guid.NewGuid() + "_" + Path.GetFileName(model.File.FileName)).Trim(' ');
                var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\uplouds\\" + model.FolderName);
                if (!Directory.Exists(filePath))
                    Directory.CreateDirectory(filePath);
                using (var fileSteam = new FileStream(Path.Combine(filePath, model.File.FileName), FileMode.Create))
                {
                    await model.File.CopyToAsync(fileSteam);
                }

                MediaUploudForModelDto sendFile = new MediaUploudForModelDto
                {
                    FileName = fileName,
                    FolderName = model.FolderName
                };

                return StatusCode(201, fileName);
            }
            return BadRequest();
        }
}

Burada görüldüğü şekilde apimizi oluşturduk. Gelin şimdi, web üzerinden request işlemini gerçekleştirelim.

 public async Task ImageUploudForName(IFormFile file, string folderName = null)
        {
            using (var content = new MultipartFormDataContent())
            {
                content.Add(new StringContent(folderName), "folderName");
                var streamContent = new StreamContent(file.OpenReadStream());
                streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse(file.ContentType);
                streamContent.Headers.ContentLength = file.Length;
                streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                {
                    Name = "file",
                    FileName = file.FileName,
                };
                content.Add(streamContent);

                using (var httpClient = new HttpClient())
                {
                    var response = await httpClient.PostAsync("http://localhost:49377/api/photos/MediaUploud", content);
                    if ((int)response.StatusCode == 201)
                    {
                        ServiceImageUploudForMediaModel fileNameResult = response.Content.ReadAsAsync().Result;
                        return fileNameResult;
                    }
                    return null;
                }
            }
        }

Şimdi de servis üzerinden post işlemini gerçekleştirdik.httpClint.GetAsync yaparak get işlemini gerçekleştirebiliriz. Bir dahaki yazımızda görüşmek üzere hoşçakalın.

Tarih:Web Api

2
Kimler Neler Demiş?

avatar
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Arronand TenantLeyla Okumuş Recent comment authors
  Subscribe  
En Yeniler Eskiler Beğenilenler
Bildir
Leyla Okumuş
Ziyaretçi
Leyla Okumuş

Teşekkürler Adnan bey, yalın ve güzel anlatım olmuş.

Arronand Tenant
Ziyaretçi
Arronand Tenant

Really nice post. Thanks