Ana içeriğe atla

XML & JSON Web Servis Hazırlama

xml_json
Bu yazımızda Visual studio’da XML ve JSON web servis nasıl hazırlanır? örneklerle birlikte inceleyeceğiz. Öncelikle bir web servis hazırlayalım ve bu web servis ile bir takım içindeki çalışanların id, adı, maaşı ve pozisyonu bilgilerini hem xml hem de json olarak nasıl alabilceğimize bakalım.

Bu işlem için öncelikle visual studio içerisinden ister visual basic isterseniz c# dilinde bir proje açalım.

[VB]
 “File > New > Project > Visual Basic > Windows > Web > ASP.NET Web Application” 

[C#]
“File > New > Project > Visual C# > Windows > Web > ASP.NET Web Application” 

seçiminden sonra ekrana gelen seçimlerden “Empty” seçimi ile projemizi oluşturalım. 

Proje oluştuktan sonra proje üzerinde sağ tık ile “Add > Web Service(ASMX)” seçimi ile servisimizi ekleyelim. Artık proje için herşey hazır olduğuna göre şimdi servis içinde kullanacağımız class larımızı hazırlayalım. İlk olarak takım üyelerinin bilgilerinin oldugu “Member” classını ve sonrasında da “Team” classını oluşturalım.

[VB]

[Member.vb]

Public Class Member
    Private m_Id As Integer
    Public Property Id() As Integer
        Get
            Return m_Id
        End Get
        Set
            m_Id = Value
        End Set
    End Property

    Private m_Name As String
    Public Property Name() As String
        Get
            Return m_Name
        End Get
        Set
            m_Name = Value
        End Set
    End Property

    Private m_Salary As Integer
    Public Property Salary() As Integer
        Get
            Return m_Salary
        End Get
        Set
            m_Salary = Value
        End Set
    End Property

    Private m_Position As String
    Public Property Position() As String
        Get
            Return m_Position
        End Get
        Set
            m_Position = Value
        End Set
    End Property 

End Class


[Team.vb]


Public Class Team
    Public Function GetTeamMembers() As Member()
        Dim teamMembers As Member() = New Member() {
            New Member() With {.Id = 1, .Name = "Samet", .Salary = 10000, .Position = "Software Specialist"},
            New Member() With {.Id = 2, .Name = "Kubilay", .Salary = 10000, .Position = "Software Specialist"},
            New Member() With {.Id = 3, .Name = "Erkan", .Salary = 10000, .Position = "Software Specialist"}}

        Return teamMembers
    End Function

End Class

[C#]

[Member.cs]

namespace JSONandXMLCs
{
    public class Member
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Salary { get; set; }
        public string Position { get; set; }
    }

}

[Team.cs]

namespace JSONandXMLCs
{
    public class Team
    {
        public Member[] GetTeamMembers()
        {
            Member[] teamMembers = new Member[]
            {
            new Member() { Id=1,Name="Samet",Salary=10000,Position="Software Specialist"},
            new Member() { Id=2,Name="Kubilay",Salary=10000,Position="Software Specialist"},
            new Member() { Id=3,Name="Erkan",Salary=10000,Position="Software Specialist"},
            };

            return teamMembers;
        }
    }
}


İşlem yapacağımız classlarımız artık hazır şimdi bu classları kullanacağımız servisimizin içeriğini hazırlayalım. Servisimizin içinde iki adet metodumuz olacak, birisi XML olarak diğeride aynı veriyi JSON olarak bize verecek. Metodlarımız GetTeamFromXML ve GetTeamFromJSON olacak.

[JSONandXML.asmx.vb]

Imports System.ComponentModel
Imports System.Web.Script.Serialization
Imports System.Web.Script.Services
Imports System.Web.Services

<System.Web.Services.WebService(Namespace:="http://univera.com.tr/")>
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class JSONandXML
    Inherits System.Web.Services.WebService

    <WebMethod>
    Public Function GetTeamFromXML() As Member()
        Dim team As New Team()
        Return team.GetTeamMembers()
    End Function

    <WebMethod>
    <ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
    Public Function GetTeamFromJSON() As String
        Dim team As New Team()
        Return New JavaScriptSerializer().Serialize(team.GetTeamMembers())
    End Function

End Class

[JSONandXML.asmx.cs]

using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Script.Serialization;

namespace JSONandXMLCs
{
    [WebService(Namespace = "http://univera.com.tr/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    public class JSONandXML : System.Web.Services.WebService
    {
        [WebMethod]
        public Member[] GetTeamFromXML()
        {
            Team team = new Team();
            return team.GetTeamMembers();
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetTeamFromJSON()
        {
            Team team = new Team();
            return new JavaScriptSerializer().Serialize(team.GetTeamMembers());
        }
    }
}

Artık herşey kullanıma hazır şimdi projeyi çalıştırıp servisin çalışmasını ve dönen değerlere bakalım. Servis çalıştığında aşağıdaki gibi görünecektir.



XML metodunu çağıdığımızda karşımıza gelecek sonuç aşağıdaki gibi olmalıdır.

[GetTeamFromXML]

<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfMember xmlns="http://univera.com.tr/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Member>
<Id>1</Id>
<Name>Samet</Name>
<Salary>10000</Salary>
<Position>Software Specialist</Position>
</Member>
<Member>
<Id>2</Id>
<Name>Kubilay</Name>
<Salary>10000</Salary>
<Position>Software Specialist</Position>
</Member>
<Member>
<Id>3</Id>
<Name>Erkan</Name>
<Salary>10000</Salary>
<Position>Software Specialist</Position>
</Member>
</ArrayOfMember>

JSON metodunu çağıdığımızda karşımıza gelecek sonuç aşağıdaki gibi olmalıdır.

 [GetTeamFromJSON]

<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://univera.com.tr/">[{"Id":1,"Name":"Samet","Salary":10000,"Position":"Software Specialist"},{"Id":2,"Name":"Kubilay","Salary":10000,"Position":"Software Specialist"},{"Id":3,"Name":"Erkan","Salary":10000,"Position":"Software Specialist"}]</string>

Bir sonraki makalemizde XML & JSON web servisinden nasıl veri alınır? örneklerle birlikte inceleyeceğiz

Samet ÇELİKBIÇAK

Yorumlar

Bu blogdaki popüler yayınlar

UML ve Modelleme – Bölüm 3 (Use Case Diyagramlar)

Önceki iki makalemizde (1, 2) UML’e genel olarak değinip ve modellemede kullanacağımız dokuz diyagram hakkında bilgiler vermiştik. Bu makalemizde Use Case diyagramından detaylı bahsedeceğiz. Öncelikle, genel Use case diyagramının tanımını hatırlayalım. “Bir kullanıcı ve bir sistem arasındaki etkileşimi anlatan senaryo topluluğudur.” Ivar Jacobson Senaryo tanımı için der ki:
“Aktörle sistem arasında gerçekleştirilen, sonucunda aktöre farkedilir getirisi/ faydası oluşan etkileşimli diyalogdur. ” UML Use Case Diyagramları  sistemin işlevselliğini açıklamak amacıyla kullanılır. Sistemin birbirinden ayrı özelliklerinin detaylarını göstermekten ziyade, Use Case Diyagramlar, tüm mevcut işlevselliği göstermek için kullanılabilir. Buradaki en önemli noktalardan biri,   Use Case Diyagramlar temelde sequence diyagram ve akış diyagramlarından farklıdır. Use Case diyagramlar dört ana elemandan oluşmaktadır. Aktörler, Sistem (Proje kapsamını belirtir), Use Caseler ve bunlar arasındaki ilişkiler. Şekil…

UML ve Modelleme – Bölüm 4 (Class (Sınıf) Diyagramları)

Bir önceki makalemizde UML modellemede kullanılan ilk diyagram olan Use Case diyagramını incelemiştik. Bu makalemizde nesne tabanlı programlamada kullanılan sınıflar ve sınıfların arasındaki ilişkileri modelleyebileceğimiz diyagramlar olan Class(Sınıf) diyagramlarını inceleyeceğiz. UML’de sınıflar, nesne tabanlı programlama mantığı ile tasarlanmıştır. Sınıf diyagramının amacı bir model içerisinde sınıfların tasvir edilmesidir. Nesne tabanlı uygulamada, sınıfların kendi özellikleri (üye değişkenler), işlevleri (üye fonksiyonlar) ve diğer sınıflarla ilişkileri bulunmaktadır. UML’de sınıf diyagramlarının genel gösterimi aşağıdaki gibidir. Şekil 1. Class Diyagram Şekil1’de görüldüğü üzere bir dikdörtgeni 3 parçaya bölüyoruz. En üst bölüm sınıf adını, orta kısım özellik listesini (üye değişkenler) ve en son kısım, işlev listesini (üye fonksiyonlar) göstermektedir. Çoğu diyagramlarda alt iki bölüm çıkarılır. Genelde tüm özellik ve işlevler gösterilmemektedir. Amaç, diyagramın sadece belirli k…

Cluster ve clustering nedir? Cluster oluşturmanın faydaları nelerdir? (Bölüm I)

Cluster, basit anlamda benzer bir amaç için belirli bir konfigürasyon yapılarak aynı görevi birlikte ya da yedekli çalışmasını sağlayan servistir. Cluster farklı amaçlarla oluşturulabilir fakat son kullanıcı tarafından her zaman tek bir bilgisayar gibi gözükecektir. Bir cluster oluşturmak için en azından iki adet sunucuya ihtiyaç vardır ve bir cluster içindeki her bir sunucu “node” olarak adlandırılır. İhtiyaç olan hizmete göre çeşitli sayıda nodelar bir araya gelerek clusterları oluşturmaktadır. Bir cluster oluşturmak için gerekli sebepler daha fazla performans ihtiyacı, yüksek erişilebilirlik (high availability) ya da her ikisi birlikte olabilir. Şimdi cluster çeşitlerini çok fazla ayrıntıya girmeden biraz daha yakından inceleyelim. Yüksek erişilebilirlik (High-availability) clusterlarıBu tip cluster yapısında öncelik erişilebilirliği arttırmadır. Bunu tek bir sunucunun görevini herhangi bir donanım yada yazılım problemi oluştuğunda diğer bir sunucunun otomatik olarak devralması olara…