• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

Swagger Nedir? Neden kullanılır?

  • Posted by Kodedu
  • Categories backend, Genel, Yazılar
  • Date 10 Ekim 2018

Swagger Rest API geliştirmek için gerekli bir sözleşme standardı ve bu çerçevede işlev gören yardımcı araçlar sunan bir teknolojidir. Swagger sunduğu standart ve araçlarla API tasarım, geliştirme, dokümantasyon ve test aşamasında kolaylık sağlamaktadır.

Haberleşmenin en önemli aşaması sözleşmedir. Örneğin biz aramızda haberleşmek için Türkçe sözleşmesinden faydalanıyoruz. Kuralları belli. Değil Türkçe dumanla haberleşmenin bile bir sözleşmesi ve kalıbı var.

İki bilgisayar sistemini haberleştirirken sıklıkla Rest API’lerinden faydalanıyoruz. Sık kullanıyoruz fakat kendisi bir standart olmadığı için, herkesin üzerinde anlaştığı standart bir servis sözleşmesi biçimi yok ve bu durum haberleşme açısından iyi bir durum değil. Fakat Swagger OpenAPI standardını kullanarak, API’lerimizi hem insanların hem de makinelerin anlayacağı formatta ortak bir dilde paylaşabiliriz. İnsanlar Open API sözleşmelerinize bakınca servis içeriğinin ne olduğunu anlayabilir. Bunun yanında makineler için sözleşme kurallarına uyan client veya server kodu üretebiliriz. 40 üzeri dil ve uygulama platformunu destekleyen Swagger, günümüz API geliştiriminde iyi bir platform tercihi olarak karşımıza çıkmaktadır.

API geliştirmede diğer bir önemli ihtiyaç ise dokümantasyon ihtiyacıdır. Servislerinizi diğer geliştiricilere özel veya herkese açık olarak paylaştığınızda, API metotlarının ne iş gördüğü ve nasıl çalıştığı ile ilgili anlaşılır bir dokümanınız olmalıdır. API dokümanlarını el emeğiyle yazmak hem zor hem de güncel tutması imkansızdır. Bir biçimde bu dokümanların otomatik olarak üretilmesi gerekir. Swagger’in diğer bir özelliği YAML veya JSON biçiminde tutulan servis sözleşmelerinden otomatik olarak dokümantasyon oluşturabiliyor olmasıdır.

Aşağıda YAML biçiminde hazırlanmış bir Swagger API sözleşmesini görmektesiniz.

swagger: '2.0'
info:
  description: Kodedu API contract
  version: 1.0.0
  title: Kodedu API Demo
  contact:
    email: rahmanusta@kodedu.com
  license:
    name: Apache 2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
host: swagger.kodedu.com
basePath: /v1
schemes:
  - http
paths:
  /edu:
    get:
      summary: Gets edu list
      description: Gets training list in kodedu.com
      responses:
        '200':
          description: OK
          schema:
            items:
              $ref: '#/definitions/Edu'
        '400':
          description: Api Error
      produces:
        - application/json
definitions:
  Edu:
    type: object
    title: An Edu object
    properties:
      code:
        type: integer
        format: int64
      name:
        type: string
      url:
        type: string

YAML olarak yazılmış bir sözleşmeyi JSON biçiminde de sergileyebiliriz. Swagger iki formatı birden desteklemektedir.

{
  "swagger": "2.0",
  "info": {
    "description": "Kodedu API contract",
    "version": "1.0.0",
    "title": "Kodedu API Demo",
    "contact": {
      "email": "rahmanusta@kodedu.com"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    }
  },
  "host": "swagger.kodedu.com",
  "basePath": "/v1",
  "schemes": [
    "http"
  ],
  "paths": {
    "/edu": {
      "get": {
        "summary": "Gets edu list",
        "description": "Gets training list in kodedu.com",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "items": {
                "$ref": "#/definitions/Edu"
              }
            }
          },
          "400": {
            "description": "Api Error"
          }
        },
        "produces": [
          "application/json"
        ]
      }
    }
  },
  "definitions": {
    "Edu": {
      "type": "object",
      "title": "An Edu object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    }
  }
}

Yukarıdaki sözleşmelerden birini editor.swagger.io adresine yapıştırarak deneyebilirsiniz.

 

Umarım faydalı olur. Tekrar görüşmek dileğiyle.

Tag:api, json, openapi, swagger, yaml

  • Share:
author avatar
Kodedu

Previous post

Spring CLI ile Spring Boot Projeleri Hazırlamak
10 Ekim 2018

Next post

Java'da Record'lar
27 Ocak 2020

You may also like

spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017
react-js-egitim
Online React.js Eğitimi ardından (15-25 Mayıs 2017)
31 Mayıs, 2017

Leave A Reply Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta listesine kayıt olun!






Gözde yazılar

Webiner : Java 8 | Project Lambda
07Ara2012
Java EE 8 için yeni plan yolda!
13Eki2016
Swagger Nedir? Neden kullanılır?
10Eki2018
Upucuz ARM Geliştirme Kiti – Kinetis KL25Z
01Eyl2012

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • Coupling ve Cohesion Kavramları Nedir? için Hilal
  • Naïve Bayes Sınıflandırma Algoritması için Rahman Usta
  • Naïve Bayes Sınıflandırma Algoritması için Mete
  • YAML Nedir? Neden YAML Kullanmalıyız? için kara
  • JWT (JSON Web Tokens) Nedir? Ne işe yarar? için Furkan

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.