• 21-03-2024, 14:13:35
    #1
    merhaba arkadaÅŸlar

    hali hazırda jetteknoloji eticaret alt yapısını kullanıyoruz ve başbuğ oto api den gelen verileri XML e çevirip verileri çekiyorduk.
    bu sene başında başbuğ api alt yapısını değiştirdiği için bizim entegrasyonda patladı tekrardan yazılması gerekiyor.
    Swagger altyapısına geçmişler sanırım örnek veri setleride aşağıda linkde mevcut

    https://api.basbug.com.tr/material/swagger/index.html

    bu veri setlerini kullanarak XML bağlantısı oluşturup ürünleri çekmek ve stok fiyat güncellemesi yapmak istiyorum.

    konu hakkında yardımcı olabilecek arkadaş varmıdır. Ücreti nedir

    Not: jetteknoloji değişen altyapıyı tekrar yazmaya çalışıyor fakat geçen seneki yazılımcıları yok sanırım ve sürüncemede gidiyor şuan
    o yüzden uygun bir fiyat olursa hiç uğraşmayayım istiyorum.
  • 21-03-2024, 14:22:45
    #2
    [TALİP DEĞİLİM]


    Merhaba açıklayıp fikir vereyim dedim. Öncelikle "swagger altyapıs"ı diye birşey yok. Veri tipi json dur önceden xml alıyormusunuz bu sefer json. Yani tek yapmanız gereken xlmToXX yerine jsonToXX yapmanız. ve json verisi cekmeniz. Swagger dediğiniz bir api arayüzdür yani UI ( user interface ).

    Sizin tarafta xml ile kayıt varsa ozaman bir ara katman koyarsınız yazdırırsınız oda json to xml olur böylelikle o xml den yine cekersiniz. Tabi hangi dili kullanıyorsanız yazılım olarak o dilde yazılması lazım.

    İyi forumlar.
  • 21-03-2024, 14:28:50
    #3
    merhaba @ozzyozmen; evet daha önce de jsondu hala json fakat yılbaşından önce sistemi güncellemeden önce farklı bir authentication metod kullanıyordu token için şuan swagger uı ye geçmişler ve mevcut çalışan json to xml kodları çalışamaz hale geldi jetteknoloji bunu 3aydır düzeltemedi bende forumdan destek almak istedim.

    sistem çalışmadığı için zaten şuan postman ile stok bilgisi çekip excel ile içeri atıyorum ama çok uğraştırıyor 250k ürün var
  • 21-03-2024, 14:32:11
    #4
    işte bu bağlamda bir ara api yazdırmak işinizi görecektir. Api karşıdan çekecek ( apiler arası iletişim ) ve belirledğiniz bir geçici yada asıl veritabanınıza kayıt edecek böylelikle sizde ordan cekmeyedevam edebilirsiniz.

    Yolu neden uzattım diceksiniz çünkü mevcut sitenizdeki yapıyı değştirmek yerine bir ara katman kısa vadede uzatma gibi gelsede uzun vadede her değişiklikte sadece aa katmanı değiştirir güncelelrsiniz böylelikle asıl yazılımınız etkilenmez.
  • 21-03-2024, 14:42:57
    #5
    mevcutta da o şekilde ilerliyorduk zaten ara bir katman php sayfası yazılmıştı json ile çektiği verileri bana xml çıktısı olarak veriyordu fakat dediğim gibi bazı yazılımcıları çıktı her halde 3aydır hala şu kod yapısını swagger uı ye göre düzenleyemediler aradaki katmanın

    sizin anlattığınız ile bizim kullandığımız sistem aynı ve istediğim sistemde aynı aslında oruçlu kafa biraz anlatım dağınık oldu sanırım ilk mesajda
  • 21-03-2024, 14:45:53
    #6
    Tamamda tekrar diyorum Swagger UI ile alakası yok. O bir interface yani postman gibi farkı yok. Sizi etkileyen şey Swagger UI a geçilmesi değil. Büyük ihtimal ile auth kısmı ve / veya verinin linki. Ama UI sadece onun bir web UI aracılığı ile kullanımını sağlıyor ve kolaylastırıyor.

    Yani auth kısmı değişmiş olabilir. Yada oluşan enpoint linkleri ama bu swagger UI a geçtiklerinden kaynaklanmıyor.
  • 21-03-2024, 14:48:43
    #7
    bizi etkileyen şey birincisi auth kısmı değişti ikincisi veri sorgulama metodları değişti yani linki
  • 21-03-2024, 14:53:20
    #8
    İŞte auth sorunu ve endpoint linkleri onlar.

    Şöyle düşün baktığımda linkle aslında sorgularda kullanılan endpoint : https://api.basbug.com.tr/material/D...?FirmaAdi=Test

    Ve dönen json verisine örnek :
    {
    "dovizListesi": [
    {
    "alis": "string",
    "satis": "string",
    "dovizCinsi": "string"
    }
    ]
    }
    Sizin auth sorununu çözdükten sonra yapmanız gereken şey bu veriyi cekecek php kodu yazmak bunun gibi ( php bilmemde ama deniyim )
    Tabi bunu siz kendi sisteminize göre değiştirip databaseninize insert / update yapmak için kod yazmanız gerek.

    <?php
    
    class DovizAPI {
        private $endpoint = 'https://api.basbug.com.tr/material/DovizBilgisiGetir';
    
        public function getDovizBilgisi($firmaAdi) {
            $response = file_get_contents($this->endpoint . '?FirmaAdi=' . urlencode($firmaAdi));
            return json_decode($response, true)['dovizListesi'] ?? false;
        }
    }
    
    // Kullanım örneği:
    $dovizAPI = new DovizAPI();
    if ($dovizListesi = $dovizAPI->getDovizBilgisi('Test')) {
        foreach ($dovizListesi as $doviz) {
            echo "Döviz Cinsi: {$doviz['dovizCinsi']}, Alış: {$doviz['alis']}, Satış: {$doviz['satis']} <br>";
        }
    } else {
        echo "API'den veri alınamadı.";
    }
    
    ?>
  • 21-03-2024, 15:00:26
    #9
    Farzetki sen veriyi bu apiden cektin ve json yapısı aldın onuda xml dönüştürmek istersen oda böyle birşey deneyebilirsin. Yani çıktısını xml olarak alabilirsin böylelikle xml yapıan devam edersin.



    <?php
    
    // JSON verisi
    $json_data = '{
        "dovizListesi": [
            {
                "alis": "1.23",
                "satis": "1.25",
                "dovizCinsi": "USD"
            },
            {
                "alis": "7.50",
                "satis": "7.55",
                "dovizCinsi": "EUR"
            }
        ]
    }';
    
    // JSON verisini diziye çevir
    $data = json_decode($json_data, true);
    
    // XML oluÅŸtur
    $xml = new SimpleXMLElement('<root/>');
    foreach ($data['dovizListesi'] as $item) {
        $currency = $xml->addChild('currency');
        $currency->addChild('alis', $item['alis']);
        $currency->addChild('satis', $item['satis']);
        $currency->addChild('dovizCinsi', $item['dovizCinsi']);
    }
    
    // XML çıktısını al
    $xml_output = $xml->asXML();
    
    // XML çıktısını ekrana yazdır
    echo $xml_output;
    
    ?>


    Neyse fikir vermek için yazmıştım.

    İyi forumlar...