Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Spring Boot

Spring Boot Content Negotiation XML – JSON Uygulama Örneği

Paylaş

Spring Boot Dersleri‘ne devam ediyorum.

İçindekiler

Toggle
  • Content Negotiation Nedir?
  • Uygulama Örneği

Bu yazıda Spring Boot Content Negotiation ne olduğu açıklayacağım ve bir uygulama örneği yapacağım.

Content Negotiation Nedir?

Spring Boot uygulamamız, HTTP isteği için belirlediğimiz veri formatını belirleyebilme özelliğine sahiptir. İstemciden gelen verinin belli bir formatta olduğunu varsayarak uygulamamızı yapılandırabiliriz. Birden fazla istemciden farklı veri formatlarını desteklemek için aynı API’yi kullanabiliriz. Bu sayede yazılımımız, JSON ve XML formatlarında verileri aynı endpointte işleyebilir.

Spring Boot uygulamamızda yapacağımız konfigürasyon yapılandırması ile istemciden gelecek tipe göre veriyi işleyebileceğiz

Uygulama Örneği

Basit bir rest api uygulaması yapalım.

Bir Employee sınıfı olşuturalım.

public class Employee {
    private String id ;
    private String name;
    private String lastName;
    private String email;
    private String departmentId;
}
Code language: PHP (php)

Şimdi controllerimizi oluşturulım ve bu sınıftan gelen adı string olarak geri döndürelim.

@RestController
public class MessageController {

  @PostMapping("/employess)
  public String save(@RequestBody Employee employee){
      return   employee.getName;
    }
}
Code language: Java (java)

Eğer istek xml formatında gelecek ise verileri kolay bir şekilde maplemek için aşağıdaki kütüphaneyi eklememiz gerekmektedir.

<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-xml</artifactId>
</dependency>Code language: HTML, XML (xml)

Uygulamamıza gelen requestin Json ya da Xml olması için bir WebConfig sınıfı oluşturacağız ve isteklerin bu formatta kabul edilmesini sağlayacağız.

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer.favorParameter(true)
                .parameterName("mediaType")
                .defaultContentType(MediaType.APPLICATION_JSON)
                .mediaType("xml", MediaType.APPLICATION_XML)
                .mediaType("json", MediaType.APPLICATION_JSON);
    }
}
Code language: Java (java)

WebMvcConfigurer sınıfını implement ederek configureContentNegotiation sınıfı içerisinde neler yaptık bakalım.

  • defaultContentType: Eğer özellikle bir tip belirtilmedi ise kabul edeceğimiz format json formatı olacaktır.
  • mediaType: Gelen istek içerisinde mediaType parametresi xml ya da json belirtildiğinde kabul ettiğimiz formatları da tanımlamış olmaktayız.

XML formatında bir istek oluşturalım.

Cevap olarak ise Burak çıktısını verecektir. Eğer bir mediaType belirtmezsek json olarak göndermemiz gerekmektedir. mediaType tanımı json olursa da yine json formatı kabul etmemiz gerekmektedir.


Önceki Ders: Spring Boot Interceptor Nedir
Spring Boot Dersleri
Sonraki Ders: Spring Boot @ConditionalOnExpression

Tags:

spring boot content negotiationspring boot derslerispring content negotiation nedirspring json

Paylaş

Diğer Yazılar

Spring Boot Interceptor Nedir Kullanım Uygulama Örneği
Previous

Spring Boot Interceptor Nedir? Uygulama Örneği

Amdahl Yasası Nedir? Thread Performans Sınırlaması
Next

Amdahl Yasası Nedir? Thread Performans Sınırlaması

Next
Amdahl Yasası Nedir? Thread Performans Sınırlaması
20 Mayıs 2023

Amdahl Yasası Nedir? Thread Performans Sınırlaması

Previews
22 Nisan 2023

Spring Boot Interceptor Nedir? Uygulama Örneği

Spring Boot Interceptor Nedir Kullanım Uygulama Örneği

No Comment! Be the first one.

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Chaos Monkey Spring Boot Uygulama Ornegi

Chaos Monkey Nedir? #1 Uygulamanızın Sınırlarını Test Edin

TestContainers Nedir Spring Boot MongoDB Uygulama Örneği

TestContainers ile Spring Boot & MongoDB Test İşlemleri

Spring Boot Dersleri @ConditionalOnExpression Uygulama Ornegi

Spring Boot @ConditionalOnExpression Nedir? Uygulama Örneği

Spring Boot Interceptor Nedir Kullanım Uygulama Örneği

Spring Boot Interceptor Nedir? Uygulama Örneği

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Node.js
Java 24
Android
Struts
Röportaj
Gradle
Amazon Web Services
Vue.js
Video
Redis
Spring Boot 3.0
Debezium
Mikroservis Mimarisi
Spring Native
Spring Cloud Stream
Etkinlikler
XCode
JPA
Objective C
iPhone Uygulama Geliştirme
PostgreSQL
Spring Security
MongoDB
Java 21
Spring Data
Apache Kafka
Yaptığım Projeler
Servlet
Git
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
JDBC
PrimeFaces
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Java SE
Tanıyalım
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale