نمایش نتایج 1 تا 8 از 8

نام تاپیک: تفاوت وب سرویس با وب API

  1. #1

    تفاوت وب سرویس با وب API

    سلام دوستان
    این سوالمو توی اینترنت سرچ کردم، ولی جوابشو پیدا نکردم. تفاوت وب سرویس با وب ای پی ای (web api) در اندروید چیه؟
    مبحثش برام جا نیافتاده. البته مقاله هایی در مورد هرکدوم را بطور جداگانه خواندم ولی در مورد تفاوتش چیزی دستگیرم نشد. ممنون می شم راهنماییم کنید.
    با تشکر فراوان

  2. #2

    نقل قول: تفاوت وب سرویس با وب API

    نقل قول نوشته شده توسط arezoo682 مشاهده تاپیک
    سلام دوستان
    این سوالمو توی اینترنت سرچ کردم، ولی جوابشو پیدا نکردم. تفاوت وب سرویس با وب ای پی ای (web api) در اندروید چیه؟
    مبحثش برام جا نیافتاده. البته مقاله هایی در مورد هرکدوم را بطور جداگانه خواندم ولی در مورد تفاوتش چیزی دستگیرم نشد. ممنون می شم راهنماییم کنید.
    با تشکر فراوان
    سلام، این سوال منم هست!!!
    ممنون میشم از پاسختون.

  3. #3
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    35
    پست
    1,118

    نقل قول: تفاوت وب سرویس با وب API

    طبق استانداردی که W3C مشخص کرده، Web Service یک لایه ارتباطی (اینترفیس) هست که امکان اتصال ماشین به ماشین رو فراهم می کنه.
    برای اینکار چند چیز اهمیت داره:
    • از پروتوکول های استاندارد (معمولاً HTTP) برای برقراری اتصال استفاده کنه
    • از فرمت های داده ی استاندارد قابل پردازش توسط ماشین استفاده کنه (مثل XML)
    • قابلیتی رو پیاده سازی کنه یک ماشین از متدهای قابل ارائه توسط این وب سرویس بتونه اطلاع پیدا کنه ( WSDL)


    این مفهوم در ابتدا شامل استاندارد پذیرفته شده ی اون زمان می شده، که در تکنولوژی های دات نت هم پیاده سازی به همین شکل بوده. فرمت انتقال داده XML بوده، که بصورت پیام های SOAP این انتقال صورت میگیره. و از WSDL هم برای شرح متدهای وب سرویس استفاده می شده.

    بعنوان مثال این یک نمونه از WSDL مربوط به سرویس پرداخت بانک ملت هست:



    <?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="IPaymentGateway" targetNamespace="http://interfaces.core.sw.bps.com/" xmlns:ns1="http://interfaces.core.sw.bps.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
    <xs:schema elementFormDefault="unqualified" targetNamespace="http://interfaces.core.sw.bps.com/" version="1.0" xmlns:tns="http://interfaces.core.sw.bps.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="bpChargePayRequest" type="tns:bpChargePayRequest" />
    <xs:element name="bpChargePayRequestResponse" type="tns:bpChargePayRequestResponse" />
    <xs:element name="bpCumulativeDynamicPayRequest" type="tns:bpCumulativeDynamicPayRequest" />
    <xs:element name="bpCumulativeDynamicPayRequestResponse" type="tns:bpCumulativeDynamicPayRequestResponse" />
    <xs:element name="bpDynamicPayRequest" type="tns:bpDynamicPayRequest" />
    <xs:element name="bpDynamicPayRequestResponse" type="tns:bpDynamicPayRequestResponse" />
    <xs:element name="bpInquiryRequest" type="tns:bpInquiryRequest" />
    <xs:element name="bpInquiryRequestResponse" type="tns:bpInquiryRequestResponse" />
    <xs:element name="bpPayRequest" type="tns:bpPayRequest" />
    <xs:element name="bpPayRequestResponse" type="tns:bpPayRequestResponse" />
    <xs:element name="bpRefundInquiryRequest" type="tns:bpRefundInquiryRequest" />
    <xs:element name="bpRefundInquiryRequestResponse" type="tns:bpRefundInquiryRequestResponse" />
    <xs:element name="bpRefundRequest" type="tns:bpRefundRequest" />
    <xs:element name="bpRefundRequestResponse" type="tns:bpRefundRequestResponse" />
    <xs:element name="bpRefundVerifyRequest" type="tns:bpRefundVerifyRequest" />
    <xs:element name="bpRefundVerifyRequestResponse" type="tns:bpRefundVerifyRequestResponse" />
    <xs:element name="bpReversalRequest" type="tns:bpReversalRequest" />
    <xs:element name="bpReversalRequestResponse" type="tns:bpReversalRequestResponse" />
    <xs:element name="bpSaleReferenceIdRequest" type="tns:bpSaleReferenceIdRequest" />
    <xs:element name="bpSaleReferenceIdRequestResponse" type="tns:bpSaleReferenceIdRequestResponse" />
    <xs:element name="bpSettleRequest" type="tns:bpSettleRequest" />
    <xs:element name="bpSettleRequestResponse" type="tns:bpSettleRequestResponse" />
    <xs:element name="bpVerifyRequest" type="tns:bpVerifyRequest" />
    <xs:element name="bpVerifyRequestResponse" type="tns:bpVerifyRequestResponse" />
    <xs:element name="bpVirtualPayRequest" type="tns:bpVirtualPayRequest" />
    <xs:element name="bpVirtualPayRequestResponse" type="tns:bpVirtualPayRequestResponse" />
    <xs:complexType name="bpVerifyRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="saleOrderId" type="xs:long" />
    <xs:element name="saleReferenceId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpVerifyRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpRefundInquiryRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="refundOrderId" type="xs:long" />
    <xs:element name="refundReferenceId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpRefundInquiryRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpRefundVerifyRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="refundOrderId" type="xs:long" />
    <xs:element name="refundReferenceId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpRefundVerifyRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpSettleRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="saleOrderId" type="xs:long" />
    <xs:element name="saleReferenceId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpSettleRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpDynamicPayRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="amount" type="xs:long" />
    <xs:element minOccurs="0" name="localDate" type="xs:string" />
    <xs:element minOccurs="0" name="localTime" type="xs:string" />
    <xs:element minOccurs="0" name="additionalData" type="xs:string" />
    <xs:element minOccurs="0" name="callBackUrl" type="xs:string" />
    <xs:element name="payerId" type="xs:long" />
    <xs:element name="subServiceId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpDynamicPayRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpVirtualPayRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="amount" type="xs:long" />
    <xs:element minOccurs="0" name="localDate" type="xs:string" />
    <xs:element minOccurs="0" name="localTime" type="xs:string" />
    <xs:element minOccurs="0" name="additionalData" type="xs:string" />
    <xs:element minOccurs="0" name="callBackUrl" type="xs:string" />
    <xs:element name="payerId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpVirtualPayRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpReversalRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="saleOrderId" type="xs:long" />
    <xs:element name="saleReferenceId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpReversalRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpCumulativeDynamicPayRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="amount" type="xs:long" />
    <xs:element minOccurs="0" name="localDate" type="xs:string" />
    <xs:element minOccurs="0" name="localTime" type="xs:string" />
    <xs:element minOccurs="0" name="additionalData" type="xs:string" />
    <xs:element minOccurs="0" name="callBackUrl" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpCumulativeDynamicPayRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpPayRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="amount" type="xs:long" />
    <xs:element minOccurs="0" name="localDate" type="xs:string" />
    <xs:element minOccurs="0" name="localTime" type="xs:string" />
    <xs:element minOccurs="0" name="additionalData" type="xs:string" />
    <xs:element minOccurs="0" name="callBackUrl" type="xs:string" />
    <xs:element name="payerId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpPayRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpSaleReferenceIdRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="saleOrderId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpSaleReferenceIdRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpChargePayRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="amount" type="xs:long" />
    <xs:element minOccurs="0" name="localDate" type="xs:string" />
    <xs:element minOccurs="0" name="localTime" type="xs:string" />
    <xs:element minOccurs="0" name="additionalData" type="xs:string" />
    <xs:element minOccurs="0" name="callBackUrl" type="xs:string" />
    <xs:element name="payerId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpChargePayRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpInquiryRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="saleOrderId" type="xs:long" />
    <xs:element name="saleReferenceId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpInquiryRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpRefundRequest">
    <xs:sequence>
    <xs:element name="terminalId" type="xs:long" />
    <xs:element minOccurs="0" name="userName" type="xs:string" />
    <xs:element minOccurs="0" name="userPassword" type="xs:string" />
    <xs:element name="orderId" type="xs:long" />
    <xs:element name="saleOrderId" type="xs:long" />
    <xs:element name="saleReferenceId" type="xs:long" />
    <xs:element name="refundAmount" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bpRefundRequestResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    </wsdl:types>
    <wsdl:message name="bpReversalRequest">
    <wsdl:part element="ns1:bpReversalRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpPayRequestResponse">
    <wsdl:part element="ns1:bpPayRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpPayRequest">
    <wsdl:part element="ns1:bpPayRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpRefundRequest">
    <wsdl:part element="ns1:bpRefundRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpSettleRequest">
    <wsdl:part element="ns1:bpSettleRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpInquiryRequestResponse">
    <wsdl:part element="ns1:bpInquiryRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpVerifyRequestResponse">
    <wsdl:part element="ns1:bpVerifyRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpInquiryRequest">
    <wsdl:part element="ns1:bpInquiryRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpSaleReferenceIdRequest">
    <wsdl:part element="ns1:bpSaleReferenceIdRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpDynamicPayRequestResponse">
    <wsdl:part element="ns1:bpDynamicPayRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpReversalRequestResponse">
    <wsdl:part element="ns1:bpReversalRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpVerifyRequest">
    <wsdl:part element="ns1:bpVerifyRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpRefundVerifyRequestResponse">
    <wsdl:part element="ns1:bpRefundVerifyRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpRefundVerifyRequest">
    <wsdl:part element="ns1:bpRefundVerifyRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpRefundInquiryRequest">
    <wsdl:part element="ns1:bpRefundInquiryRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpSettleRequestResponse">
    <wsdl:part element="ns1:bpSettleRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpRefundInquiryRequestResponse">
    <wsdl:part element="ns1:bpRefundInquiryRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpCumulativeDynamicPayRequest">
    <wsdl:part element="ns1:bpCumulativeDynamicPayRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpVirtualPayRequest">
    <wsdl:part element="ns1:bpVirtualPayRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpDynamicPayRequest">
    <wsdl:part element="ns1:bpDynamicPayRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpChargePayRequest">
    <wsdl:part element="ns1:bpChargePayRequest" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpCumulativeDynamicPayRequestResponse">
    <wsdl:part element="ns1:bpCumulativeDynamicPayRequestResponse " name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpRefundRequestResponse">
    <wsdl:part element="ns1:bpRefundRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpVirtualPayRequestResponse">
    <wsdl:part element="ns1:bpVirtualPayRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpChargePayRequestResponse">
    <wsdl:part element="ns1:bpChargePayRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="bpSaleReferenceIdRequestResponse">
    <wsdl:part element="ns1:bpSaleReferenceIdRequestResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:portType name="IPaymentGateway">
    <wsdl:operation name="bpVerifyRequest">
    <wsdl:input message="ns1:bpVerifyRequest" name="bpVerifyRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpVerifyRequestResponse" name="bpVerifyRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpRefundInquiryRequest">
    <wsdl:input message="ns1:bpRefundInquiryRequest" name="bpRefundInquiryRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpRefundInquiryRequestResponse" name="bpRefundInquiryRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpRefundVerifyRequest">
    <wsdl:input message="ns1:bpRefundVerifyRequest" name="bpRefundVerifyRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpRefundVerifyRequestResponse" name="bpRefundVerifyRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpSettleRequest">
    <wsdl:input message="ns1:bpSettleRequest" name="bpSettleRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpSettleRequestResponse" name="bpSettleRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpDynamicPayRequest">
    <wsdl:input message="ns1:bpDynamicPayRequest" name="bpDynamicPayRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpDynamicPayRequestResponse" name="bpDynamicPayRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpVirtualPayRequest">
    <wsdl:input message="ns1:bpVirtualPayRequest" name="bpVirtualPayRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpVirtualPayRequestResponse" name="bpVirtualPayRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpReversalRequest">
    <wsdl:input message="ns1:bpReversalRequest" name="bpReversalRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpReversalRequestResponse" name="bpReversalRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpCumulativeDynamicPayRequest">
    <wsdl:input message="ns1:bpCumulativeDynamicPayRequest" name="bpCumulativeDynamicPayRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpCumulativeDynamicPayRequestResponse " name="bpCumulativeDynamicPayRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpPayRequest">
    <wsdl:input message="ns1:bpPayRequest" name="bpPayRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpPayRequestResponse" name="bpPayRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpSaleReferenceIdRequest">
    <wsdl:input message="ns1:bpSaleReferenceIdRequest" name="bpSaleReferenceIdRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpSaleReferenceIdRequestResponse" name="bpSaleReferenceIdRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpChargePayRequest">
    <wsdl:input message="ns1:bpChargePayRequest" name="bpChargePayRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpChargePayRequestResponse" name="bpChargePayRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpInquiryRequest">
    <wsdl:input message="ns1:bpInquiryRequest" name="bpInquiryRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpInquiryRequestResponse" name="bpInquiryRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="bpRefundRequest">
    <wsdl:input message="ns1:bpRefundRequest" name="bpRefundRequest">
    </wsdl:input>
    <wsdl:output message="ns1:bpRefundRequestResponse" name="bpRefundRequestResponse">
    </wsdl:output>
    </wsdl:operation>
    </wsdl:portType>
    </wsdl:definitions>

    همونطور که مشخص هست، بصورت کامل نوع داده ها تعریف شده و کلاینت ملزم هست از این قوائد پیروی کنه.


    Web API نوعی از وب سرویس هست، که از الگوی REST برای پیاده سازی استفاده می کنه. REST اجباری در شکل پیاده سازی نمی کنه (مثلاً حتماً از XML بعنوان فرمت داده استفاده بشه)
    در REST برای اشاره عملیات مورد نظر از URI و HTTP Verbs استفاده می کنیم، مثلاً:
    GET /user/22

    که URI برابر هست با user/22/ و verb هم GET هست. و معنیش این هست که قصد داریم اطلاعات یک یوزر با آیدی 22 رو دریافت کنیم
    ممکنه این API، متدهای PUT و PATCH رو هم برای این URI پیاده سازی کرده باشه، که در اینصورت معنیش این هست که اطلاعات یوزر با کد 22 رو بصورت کامل (PUT) و یا بخش هایی از اون (PATCH) رو آپیدت کن.

    البته توجه داشته باشید که این‌ها استاندارد های تعیین شده هست، اما ممکنه در یک پیاده سازی توسط یک شرکت یا سرویس خاص، مثلاً از متد POST برای آپدیت اطلاعات استفاده شده باشه.

    به دلیل اینکه REST بر اساس استانداردهای HTTP پیاده سازی شده و نیازمندی های دیگه ای رو الزام نکرده، برای استفاده از از این نوع وب سرویس ها نیاز نیست کار خاصی بکنید.
    عملاً وقتی آدرس URL مثلاً گوگل رو در مرورگر وارد می کنید، مرورگر یک درخواست GET به اون URL میفرسته. یا وقتی فرمی رو در سایتی پر می کنید، از متد POST برای ارسال داده استفاده می کنید.

    فرمت ورودی/خروجی اطلاعات توسط سازنده ی وب سرویس تعیین میشه، که هر فرمتی میتونه باشه. البته به دلیل سادگی ساختار JSON، این فرمت محبوبیت زیادی پیدا کرده و بیشتر وب سرویس ها از این فرمت استفاده می کنن.


    در اندروید برای استفاده از Web API کار خاصی نیاز نیست بکنید، همونطور که گفتم خود استاندارد الزامی برای فرمت داده های ورودی/خروجی نداره، پس این مورد رو در داکیومنت های API موردنظر میخونید و بر اساس نوع فرمت داده، Parser های مورنیاز رو استفاده می کنید.

    دو کتابخانه ی محبوب در اندروید OkHttp و Volley هستند. کتابخانه ی Retrofit بصورت خاص برای RESTful Web API ساخته شده.

    برای استفاده از SOAP-based Web Service به دلیل شکل خاص پیاده سازیش، باید از الگوی خاصی پیروی کنید (مثلاً پیام ها باید در بسته های SOAP ارسال بشن). بهترین کتابخانه ای که من دیدم kSOAP هست.

  4. #4
    کاربر دائمی آواتار godofphp
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    between 0 and 1
    پست
    792

    نقل قول: تفاوت وب سرویس با وب API

    دوست عزیز
    API رابط برنامه نویسی هست فرقی نمیکنه چی باشه وب سرویس یه نوع API هست که مخصوص وب هست اسمشم روشه چرا داستان رو کش میدید
    توی اندروید وب سرویس مبتنی برا RESTful هست و با فرمت JSON ارسال میشه . شما کافیه Json رو یاد بگیری و با استفاده از کتابخانه ی volley در اندروید که توسط خود شرکت اندروید در اندروید 5 به بعد ارائه شده از api استفاده کنید
    آموزش کار با کتابخانه ی volley برای ارتباطات سرور در اندروید اینجا هست (ویدیویی و فارسی )

  5. #5
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    35
    پست
    1,118

    نقل قول: تفاوت وب سرویس با وب API

    نقل قول نوشته شده توسط godofphp مشاهده تاپیک
    دوست عزیز
    API رابط برنامه نویسی هست فرقی نمیکنه چی باشه وب سرویس یه نوع API هست که مخصوص وب هست اسمشم روشه چرا داستان رو کش میدید
    توی اندروید وب سرویس مبتنی برا RESTful هست و با فرمت JSON ارسال میشه . شما کافیه Json رو یاد بگیری و با استفاده از کتابخانه ی volley در اندروید که توسط خود شرکت اندروید در اندروید 5 به بعد ارائه شده از api استفاده کنید
    آموزش کار با کتابخانه ی volley برای ارتباطات سرور در اندروید اینجا هست (ویدیویی و فارسی )
    وقتی یکی می پرسه فرق Web Service و Web API چی هست، لابد میدونه که اینها از هم قابل تفکیک هستن.

    در معنای عامش، هر خدمتی که در بستر وب ارائه بشه و با یه اینترفیسی به امکان استفاده داده بشه، رو میگن وب سرویس. اما چون ایشون هردو رو جداگانه مطرح کردن، فرض بر این هست که معنای خاص مدنظرشون هست.

    اما این دو از بعد تخصصی معنای متفاوتی دارن، یعنی اگر مدیرت بیاد بگه واسه محصولمون یه وب سرویس بنویس، فرق داره تا اینکه بگه Web API بنویس.

    توی اندروید وب سرویس مبتنی برا RESTful هست و با فرمت JSON ارسال میشه
    وب سرویس رو برنامه نویس اندروید نمی نویسه و هیچوقت هم استانداردی تعیین نشده که برای اندروید باید حتماً اینها باید رعایت بشه.
    وقتی نیاز هست که از یک وب سرویس استفاده بشه، کلاینت باید با استانداردهایی که خود وب سرویس تعیین می کنه اطلاعات رو ارسال/دریافت کنه. کلاینت میتونه اپ اندروید باشه، iOS, Desktop ویا وبسایت باشه.

    ضمن اینکه حداقل تو ایران به دلیل نفوذ زیاد NET. خیلی از شرکت ها وب سرویس هاشون SOAP-based هست که زمین تا آسمون با یک وب ای پی آی RESTful و با فرمت JSON متفاوت هست.

  6. #6
    کاربر دائمی آواتار rezaricky
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    Tabriz
    سن
    31
    پست
    441

    نقل قول: تفاوت وب سرویس با وب API

    نقل قول نوشته شده توسط godofphp مشاهده تاپیک
    دوست عزیز
    API رابط برنامه نویسی هست فرقی نمیکنه چی باشه وب سرویس یه نوع API هست که مخصوص وب هست اسمشم روشه چرا داستان رو کش میدید
    توی اندروید وب سرویس مبتنی برا RESTful هست و با فرمت JSON ارسال میشه . شما کافیه Json رو یاد بگیری و با استفاده از کتابخانه ی volley در اندروید که توسط خود شرکت اندروید در اندروید 5 به بعد ارائه شده از api استفاده کنید
    آموزش کار با کتابخانه ی volley برای ارتباطات سرور در اندروید اینجا هست (ویدیویی و فارسی )
    یعنی نمیشه مثلا restful نباشه و از xml استفاده کرد؟!

  7. #7
    کاربر دائمی آواتار godofphp
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    between 0 and 1
    پست
    792

    نقل قول: تفاوت وب سرویس با وب API

    نقل قول نوشته شده توسط Nevercom مشاهده تاپیک
    وب سرویس رو برنامه نویس اندروید نمی نویسه و هیچوقت هم استانداردی تعیین نشده که برای اندروید باید حتماً اینها باید رعایت بشه.
    وقتی نیاز هست که از یک وب سرویس استفاده بشه، کلاینت باید با استانداردهایی که خود وب سرویس تعیین می کنه اطلاعات رو ارسال/دریافت کنه. کلاینت میتونه اپ اندروید باشه، iOS, Desktop ویا وبسایت باشه.
    این چیزی که شما گفتید مربوط به زمانی هست که Api بصورت عمومی عرضه بشه همانند api های اینستاگرام و .... که برنامه نویس ها بدون در نظر گرفتن پلتفرم یا زبان برنامه نویسی خودشون از اون استفاده کنند
    بنده ی شیوه رسمی برای ارتباط بین کلاینت و سرور در برنامه نویسی اندروید رو عرض کردم وقتی که api قرار نیست در دسترس عموم باشه و فقط مختص یک کلاینت هست بهترین شیوه استفاده از RestFul در قالب JSON هست
    ضمن اینکه پارس کردن باقی شیوه ها با کتابخانه ی رسمی اندروید به نام Volley امکان پذیر نیست یا حداقل توسط کتابخانه ها و کلاس های جانبی انجام میگیره
    کلاس های اصلی کتابخانه ی volley به شکل های زیر هست
    JsonArrayRequest
    JsonObjectRequest و ...
    در غیر این صورت باید api بصورت یک رشته ی نامفهوم دریافت شود و توسط کتابخانه ی های جانبی پارس شود که به نظر بنده وقتی سیستم از پایه نوشته بشه ارزش چنین کارهایی رو نداره
    دو روش دیگری که بنده میشناسمsoap و wsdl هستند که حداقل برای ارتباطات بین سرور و کلاینت اندرویدی مناسب نیستند بنده هم نگفتم نمیشه از اینها استفاده کرد بلکه گفتم شیوه ی رسمی و صحیح استفاده نیست و وقتی سیستمی قراره پیاده بشه با سیستم درستی پیاده شه
    ولی اگه طبق گفته شما api عمومی باشه فرقی نداره با کدوم api باشه و این مورد اصلا دست برنامه نویس نیست و برنامه نویس مجبور به فهم و استفاده از آن هست



  8. #8
    کاربر دائمی آواتار godofphp
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    between 0 and 1
    پست
    792

    نقل قول: تفاوت وب سرویس با وب API

    نقل قول نوشته شده توسط rezaricky مشاهده تاپیک
    یعنی نمیشه مثلا restful نباشه و از xml استفاده کرد؟!
    منظورتون رو نفهمیدم
    اگه مقایسه ای باشه باید بین XML و JSON باشه فکر کنم منظورتون همین بوده

تاپیک های مشابه

  1. ایجاد وب سرویس با PHP
    نوشته شده توسط akram_raeespour در بخش PHP
    پاسخ: 3
    آخرین پست: پنج شنبه 04 دی 1393, 01:05 صبح
  2. تفاوت وب سرویس و WebApi و نوشتن وب سرویس با mvc
    نوشته شده توسط IR-Developer در بخش ASP.NET MVC
    پاسخ: 4
    آخرین پست: چهارشنبه 12 آذر 1393, 09:51 صبح
  3. فراخوانی توابع وب سرویس با آژاکس
    نوشته شده توسط xamfia در بخش WCF , Web Services , .Net Remoting
    پاسخ: 1
    آخرین پست: شنبه 05 اردیبهشت 1388, 01:20 صبح
  4. سوال: ارتباط وب سرویس با کنترلAutocomplete
    نوشته شده توسط h.alizadeh در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: یک شنبه 21 مهر 1387, 04:46 صبح
  5. SOAP پارسر یا وب سرویس با پروتکل انتقالی SMTP
    نوشته شده توسط PHPprogrammer_new در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: جمعه 19 مرداد 1386, 08:53 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •