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.