Şuayb'in BloguŞuayb'in Blogu
Ana Sayfa
Kategoriler
Oyunlar
MediumHakkındaİletişim
Dil
Tema
    1. Blog
    2. Programlama
    3. Spring Boot ile OpenAPI

Spring Boot ile OpenAPI

İlk yayın20 Aralık 2024
Son güncelleme21 Aralık 2024
Okuma süresi3 dk okuma
JavaKotlinSpring BootOpenAPIDokümantasyon
XLinkedInFacebook
Spring Boot ile OpenAPI

Beğeni yükleniyor...

OpenAPI, API dokümantasyonu ve test işlemlerini kolaylaştıran etkileşimli bir arayüz ve makine tarafından okunabilir belgeler sağlar. Bu kılavuz, SpringDoc kullanarak OpenAPI'yi Spring Boot uygulamanıza entegre etmenin yollarını gösterecektir.


Son güncelleme21 Aralık 2024

Toplam görüntülenmeGörüntülenme yükleniyor...

Önceki makaleSpring Boot Temiz Kodlama PratikleriSonraki makaleSpring Boot ile Redis Önbellekleme
Şuayb Şimşek

Yazan

Şuayb Şimşek

Spring Boot, güvenlik, mikroservis ve cloud-native mimari konularında pratik teknik notlar paylaşan backend odaklı fullstack geliştirici.

Uzmanlık

  • Spring Boot
  • Go
  • Mikroservis
  • Next.js
  • Cloud Native

Bağlantılar

GitHubLinkedInMedium

Benzer yazılar

Spring Boot Configuration Properties
Programlama

Spring Boot Configuration Properties

@ConfigurationProperties ile tip-güvenli yapılandırma tanımlamayı, @Validated ile ayarları doğrulamayı ve profile-specific application-{profile}.yml dosyalarıyla ortama göre değer yönetimini öğrenin.

4 Şubat 20263 dk okuma
JavaKotlinSpring BootYapılandırma
Spring Boot GraphQL JWE Kimlik Doğrulama
Programlama

Spring Boot GraphQL JWE Kimlik Doğrulama

Stateless şifreli JWT’ler (JWE) ile Spring Boot GraphQL API’lerinizi güvenli hale getirmeyi; kullanıcı kimliği ve rolleri JPA ile bir veritabanında saklamayı öğrenin.

17 Mayıs 20256 dk okuma
JavaKotlinSpring BootGüvenlikJWTJWEGraphQL
Spring Boot JPA ile JWE Kimlik Doğrulaması
Programlama

Spring Boot JPA ile JWE Kimlik Doğrulaması

Stateless şifreli JWT’ler (JWE) kullanarak Spring Boot API’lerinizi güvenli hale getirirken, kullanıcı kimliklerini ve rolleri JPA destekli bir veritabanında nasıl saklayacağınızı öğrenin.

11 Mayıs 20254 dk okuma
JavaKotlinSpring BootGüvenlikJWTJWEJPA

Hakkımda

Spring Boot, mikroservis, güvenlik ve daha fazlası hakkında yazılar.

İletişimYeni başladıysan

Son yazılar

  • Captain Tsubasa 2: World Fighters
  • Captain Tsubasa: Rise of New Champions
  • Spring Boot Configuration Properties
  • Spring Boot GraphQL JWE Kimlik Doğrulama
  • Spring Boot JPA ile JWE Kimlik Doğrulaması

Popüler konular

JavaKotlinSpring BootGüvenlikJWEJWT

Abone ol

Yeni yazılar yayınlandığında pratik backend ve fullstack notlarını al.

Sosyal

© 2024-2026 Şuayb'in Blogu. Tüm hakları saklıdır.

🌟 Neden OpenAPI Kullanmalıyız?

Bu bölümde Neden OpenAPI Kullanmalıyız? konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

  • Etkileşimli Dokümantasyon: API'leri keşfetmek için kullanıcı dostu bir arayüz sağlar.
  • Standartlaştırılmış Format: Makine tarafından okunabilir API tanımları oluşturur.
  • Kolay Test: Endpoint'leri test etmek için yerleşik araçlar sunar.
  • İstemci Kod Üretimi: Çeşitli programlama dilleri için otomatik istemci kodu üretimi sağlar.

📋 Gereksinimler

📋 Şunlara sahip olduğunuzdan emin olun:

  • ☕ Java Development Kit (JDK) 17+
  • 📦 Maven veya Gradle yüklü
  • 🔤 Bir Java IDE (Örneğin IntelliJ IDEA, Eclipse)

🛠️ Adım 1: Bağımlılıkları Ekleyin

SpringDoc kullanarak OpenAPI'yi entegre etmek için aşağıdaki bağımlılığı projenize ekleyin:

  • Maven:
XMLpom.xml
<dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
  <version>2.1.0</version>
</dependency>
  • Gradle:
GROOVYbuild.gradle
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'

🛠️ Adım 2: OpenAPI'yi Yapılandırın

SpringDoc minimal konfigürasyon gerektirir. application.properties veya application.yml dosyası üzerinden dokümantasyonu özelleştirebilirsiniz.

Örnek Konfigürasyon:

Bu yapılandırmayı başlangıç noktası olarak alın, sonra ortamınıza göre değerleri uyarlayın.

PROPERTIESconfig.properties
springdoc.api-docs.path=/api-docs
springdoc.swagger-ui.path=/swagger-ui.html

🛠️ Adım 3: REST Kontrollerinizi Anotasyonlarla Belgeleyin

REST kontrollerinize ve modellerinize anotasyonlar ekleyerek OpenAPI dokümantasyonunu otomatik olarak oluşturabilirsiniz.


▶️ Uygulamayı Çalıştırma

Uygulamayı aşağıdaki komutla çalıştırın:

BASH
./mvnw spring-boot:run

OpenAPI dokümantasyonuna erişmek için:

  • API Docs: http://localhost:8080/api-docs
  • Swagger UI: http://localhost:8080/swagger-ui.html

🧪 API'yi Test Etme

Swagger UI arayüzüne erişerek oluşturulan API dokümantasyonunu test edebilirsiniz:

  1. Tarayıcınızda http://localhost:8080/swagger-ui.html adresine gidin.
  2. Endpoint'leri etkileşimli olarak test etmek için girişler yapın ve yanıtları gözlemleyin.

🏁 Sonuç

Artık OpenAPI için üretim odaklı bir Spring Boot temeliniz var. Sonraki adımda ayarları kendi domainine uyarlayıp test ve gözlemlenebilirlik katmanını ekleyerek gerçek trafik altında doğrulayın.

Controller Örneği

JAVAUserController.java
package com.example.openapi.controller;

import com.example.openapi.model.User;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

  @Operation(summary = "Tüm kullanıcıları getir", description = "Kullanıcı listesini alır")
  @ApiResponse(responseCode = "200", description = "Başarılı işlem",
    content = @Content(mediaType = "application/json"))
  @GetMapping
  public List<User> getAllUsers() {
    return List.of(new User(1L, "John Doe", "john@example.com"));
  }

  @Operation(summary = "Yeni bir kullanıcı oluştur", description = "Sisteme yeni bir kullanıcı ekler")
  @ApiResponse(responseCode = "201", description = "Kullanıcı başarıyla oluşturuldu",
    content = @Content(mediaType = "application/json"))
  @PostMapping
  public User createUser(@RequestBody User user) {
    return user;
  }
}

User Model

JAVAUser.java
package com.example.openapi.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private Long id;
    private String name;
    private String email;
}

Controller Örneği

KOTLINUserController.kt
package com.example.openapi.controller

import com.example.openapi.model.User
import io.swagger.v3.oas.annotations.*
import io.swagger.v3.oas.annotations.responses.*
import io.swagger.v3.oas.annotations.media.*
import org.springframework.web.bind.annotation.*

@RestController
@RequestMapping("/users")
class UserController {

    @Operation(summary = "Tüm kullanıcıları getir", description = "Kullanıcı listesini alır")
    @ApiResponse(responseCode = "200", description = "Başarılı işlem",
                 content = [Content(mediaType = "application/json")])
    @GetMapping
    fun getAllUsers(): List<User> = listOf(User(1L, "John Doe", "john@example.com"))

    @Operation(summary = "Yeni bir kullanıcı oluştur", description = "Sisteme yeni bir kullanıcı ekler")
    @ApiResponse(responseCode = "201", description = "Kullanıcı başarıyla oluşturuldu",
                 content = [Content(mediaType = "application/json")])
    @PostMapping
    fun createUser(@RequestBody user: User): User = user
}

User Model

KOTLINUser.kt
package com.example.openapi.model

data class User(
  val id: Long,
  val name: String,
  val email: String
)