Basit, bağımsız bir Go paketi olarak Nüfus ve Vatandaşlık İşleri (KPS) v2 servislerine sorgu yapmaya yarar.
Bu paket, WS-Trust (STS) isteğini gerçekleştirir, STS tarafından döndürülen SAML tabanlı anahtarla servise HMAC-SHA1 imzalı SOAP isteği gönderir ve gelen yanıtı parse ederek daha kullanışlı bir Go yapısına dönüştürür.
- STS (Token Service) ile kimlik doğrulama akışını otomatik olarak işler.
- HMAC-SHA1 ile SOAP mesajlarını imzalar (KPS servisleriyle uyumlu olarak).
- SOAP cevabını parse edip anlamlı Resultyapısını döndürür.
- Bağımsız, küçük ve kolay kullanılabilir API.
Go mod ile kullanmak için:
go get github.com/netinternet/kpsclientveya doğrudan modunuzda:
import kpsclient "github.com/netinternet/kpsclient"Örnek kullanım test/main.go içinde bulunur. Kısaca:
package main
import (
  "context"
  "time"
  kpsclient "github.com/netinternet/kpsclient"
)
func example() {
  client := kpsclient.New("KULLANICI_ADI", "PAROLA", nil)
  req := kpsclient.QueryRequest{
    TCNo:       "99999999999",
    FirstName:  "JOHN",
    LastName:   "DOE",
    BirthYear:  "1990",
    BirthMonth: "01",
    BirthDay:   "01",
  }
  ctx, cancel := context.WithTimeout(context.Background(), 40*time.Second)
  defer cancel()
  res, err := client.DoQuery(ctx, req)
  if err != nil {
    // hata yönetimi
  }
  // res.Result yapısını kullan
  _ = res
}- 
func New(username, password string, httpClient *http.Client) *Client- Yeni Clientoluşturur.httpClientnil ise 30s timeout'lu varsayılan kullanılır.
 
- Yeni 
- 
func (c *Client) DoQuery(ctx context.Context, req QueryRequest) (Result, error)- Verilen sorgu ile STS akışını yürütür, servise imzalı isteği gönderir ve sonucu parse eder.
 
- 
type QueryRequest(input)- TCNo,- FirstName,- LastName,- BirthYear,- BirthMonth,- BirthDay
 
- 
type Result(output)- Status(bool),- Code(1 başarılı, 2 hatalı/bulunamadı, 3 ölüm),- Aciklama,- Person(- tc_vatandasi,- yabanci,- mavi),- Extra(map),- Raw(ham SOAP cevabı)
 
Paket doğrudan ortam değişkeni okumaz; ancak örnek test/main.go dosyası .env kullanımı göstermektedir. Gerçek kullanımda New fonksiyonuna KPS servislerine kayıtlı kullanıcı adı/parolayı verin.
Not: Bu paket NVI/KPS servislerinin beklediği HMAC-SHA1 imzalama yöntemini kullanır.
Uyarı: KPS servisleri gerçek kimlik doğrulama sağlar; test kredensiyelleri olmadan servis çağrıları hatalı dönebilir veya erişim reddedilebilir.
- Paket KPS servisleriyle uyum için HMAC-SHA1 kullanır (STS tarafı gerekliliği). Bu, modern kriptografi tercihleriyle çelişebilir; kullanım alanınıza göre değerlendirin.
- Parolaları ve anahtarları güvenli şekilde saklayın; .envdosyaları üretimde uygun değildir.
- Gelen Rawalanı hata ayıklama amaçlıdır; gizli bilgi içerebilir — loglarken dikkat edin.