Soldaki alana bir cURL komutu yapıştırın ve “Dönüştür” düğmesine basın — onu XML'e çeviririzBir cURL komutu yapıştırın

Bu araç ne yapar

Chrome DevTools'ta bir HTTP çağrısı kaydedip “Copy as cURL”’a basıp sonra aynı isteği bir SOAP sağlayıcısına ya da XML odaklı bir test koşumuna göndermek zorunda kaldıysanız, hikâyeyi bilirsiniz — oturup başlıkları ve JSON gövdesini elle XML ögelerine çevirirsiniz. Bu araç o adımı atlar. cURL komutunu, ters eğik çizgili satır devamları dahil olduğu gibi yapıştırın; isteğin tamamını — method, URL, sorgu parametreleri, başlıklar, kimlik doğrulama ve gövde — tanımlayan tek bir well-formed XML belgesi elde edersiniz.

Parser, günlük olarak gerçekten kullandığınız bayrakları anlar — method için -X, her başlık için -H, gövde için -d/--data, basic auth için -u, çerezler için -b ve curl(1)'in okunabilir çok satırlı komutlar için kullandığı ters eğik çizgi + yeni satır devamları. Hem tek hem çift tırnaklı argümanlar ele alınır ve URL sorgu dizeleri kendi <QueryParams> bloğuna ayrılır, böylece her parametreyi kendi satırında görürsünüz.

İstek bir JSON gövdesi taşıyorsa iç içe geçmiş bir <Body> ögesi olarak gömülür — JSON yükündeki her alan kendi XML ögesine dönüşür ve biçim korunur (nesneler iç içe geçer, diziler tekrarlanır). Form-urlencoded gövdeler anahtar/değer çiftlerine bölünür. cURL'ün tanımadığı her şey — arada bir gelen --compressed, -k ya da geçtiğiniz başka bir bayrak — sessizce atılmasın diye bir <Options> bloğunda toplanır. Sonuç, bir SOAP istemcisine besleyebileceğiniz, test fixture’ı olarak commitleyebileceğiniz veya dokümantasyona yapıştırabileceğiniz bir XML belgesidir.

Nasıl kullanılır

Üç adım. cURL ister tek satır olsun ister ters eğik çizgi devamlarıyla yirmi satır, fark etmez.

1

cURL'ü yapıştırın (ya da örneği deneyin)

cURL komutunuzu soldaki editöre bırakın. \ satır devamlarını olduğu yerde bırakın, gövdenin çevresindeki tek tırnakları koruyun, hiçbir bayrağı sökmeyin. Önce gerçekçi bir HTTP örneği görmek isterseniz Örnek yükle’ye tıklayın.

Chrome, Firefox ve Safari’nin Network panelinde “Copy as cURL” / “Copy as cURL (bash)” seçeneği var — o çıktı temiz bir şekilde yapışır. Postman’ın “Code snippets → cURL” çıktısı da çalışır.

2

Dönüştür’e basın

Yeşil Dönüştür düğmesine tıklayın. Araç komutu parse eder; method, URL, sorgu dizesi, başlıklar, kimlik doğrulama ve gövdeyi çıkarır ve XML’i tek seferde oluşturur. Çalışırken kısa bir yükleniyor göstergesi görünür.

3

XML’i kopyalayın

Sağdaki panel, HTTP farkındalığı olan her araç ya da standart uyumlu XML parser’ın kabul edeceği girintili, well-formed XML ile dolar. Doğrudan bir SOAP isteğine, test fixture’ına ya da API dokümanınıza kopyalayın.

Bu gerçekten ne zaman işe yarar

DevTools kaydından SOAP envelope üretmek

Tarayıcıda bir REST çağrısı kaydettiniz ama aşağı taraftaki sağlayıcı hala SOAP konuşuyor. cURL’ü yapıştırın ve çıkan XML’i envelope gövdesi için başlangıç noktası olarak kullanın — method, URL ve yük biçimi zaten önünüze serilmiştir.

XML odaklı araçlar için test fixture’ları

SoapUI, ReadyAPI ve eski kurumsal test kitleri girdi olarak XML dosyaları ister. Çalışan bir cURL’ü bir kez XML’e çevirip fixture olarak commitleyin; iki paralel formatı elle tutmak zorunda kalmayın.

Legacy kurumsal sağlayıcı entegrasyonları

Hala WSDL/SOAP veya XML gateway’leri üzerinde çalışan partner API’leri cURL scriptlerini kabul etmez. Onlara kendi taraflarında doğrudan yükleyebilecekleri bir XML isteği vermek, “endpoint’iniz gerçekte ne bekliyor” gidiş-dönüşünden sizi kurtarır.

API dokümantasyonu ve snippet’ler

README’nizin aynı isteği iki biçimde göstermesini istiyorsunuz — geliştiriciler için cURL, trafiği inceleyen ops ekibi için XML. XML’i cURL’den bir kez üretin ve ikisini senkronize tutun.

Sık sorulan sorular

Hangi cURL bayrakları destekleniyor?

Yaygın olanlar: HTTP method’u için -X/--request, her başlık için -H/--header (istediğiniz kadar tekrarlayın), istek gövdesi için -d/--data/--data-raw/--data-binary, basic auth için -u/--user ve çerezler için -b/--cookie. Bir şeye bakmak isterseniz tüm bayrak referansı curl.se/docs/manpage.html adresinde.

Çok satırlı ters eğik çizgi devamlarını işliyor mu?

Evet. Satırın sonundaki \’yi takip eden yeni satır, satır devamı olarak ele alınır — bash’in ve cURL’ün gördüğü şekliyle. Komutu DevTools’tan ya da terminal geçmişinizden çıktığı şekliyle yapıştırın. Önce tek satıra birleştirmeniz gerekmez.

JSON istek gövdesine ne olur?

Bir JSON gövdesi (content-type application/json ya da sadece JSON olarak parse olan bir -d ‘{...}’ yükü) bir <Body> ögesinin içinde iç içe XML olarak gömülür — her alan kendi ögesi olur, nesneler iç içe geçer, diziler tekrarlanır. JSON grameri RFC 8259’a uyar ve biçim XML çıktısında bire bir korunur.

Peki URL-encoded veya form gövdeleri?

Bir application/x-www-form-urlencoded gövdesi (örn. -d ‘user=ava&pwd=x’) <Body> içinde tek tek anahtar/değer ögelerine bölünür. URL’nin kendisindeki sorgu dizesi parametreleri, her parametreyi net görebilesiniz diye ayrı bir <QueryParams> ögesine çıkarılır. Multipart (-F) gövdeler, alan adı ve değeri olan her parça başına bir öge olarak temsil edilir.

Chrome ya da Firefox’un “Copy as cURL” çıktısını yapıştırabilir miyim?

Evet — asıl kullanım senaryosu bu. Chrome’un “Copy as cURL (bash)”, Firefox’un “Copy as cURL” ve Safari’nin “Copy as cURL” çıktılarının hepsi temiz bir şekilde yapışır. Parser tırnaklama stili farklarını yok sayar. Postman’ın cURL kod snippet çıktısı da çalışır.

Ya cURL’ümde parser’ın tanımadığı bir bayrak varsa?

Bilinmeyen veya egzotik bayraklar (--compressed, -k, --resolve, özel long flag’ler) yere atılmak yerine XML’in sonundaki bir <Options> bloğunda toplanır. Böylece orijinal komutta ne olduğunu tam olarak görür ve alıcı tarafta nasıl temsil edeceğinize kendiniz karar verirsiniz.

İhtiyacınız olabilecek diğer araçlar

cURL’den XML’e, büyuk tablonun tek parçasıdır. Bu araçlar onunla iyi gider: