CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

26 April, 2022

Soap - A Laravel SOAP client that provides a clean interface for handling requests and responses

 Programing Coderfunda     April 26, 2022     Laravel, Packages     No comments   

 Nobody likes having to work with SOAP APIs, but we don't always get a choice. So why hasn't anybody done anything about it yet? Soap is a plug-and-play package for Laravel that makes SOAP (dare I say) enjoyable to work with in your applications. If you've worked with the Http client introduced in Laravel 7, you'll feel right at home.

Making your first Soap request is simple using the provided Soap facade:

1$customers = Soap::to('https://api.example.com')
2 ->withBasicAuth('username', 'password')
3 ->Customers(['SortBy' => 'name']);

Faking Requests

One of the biggest challenges developers face when working with SOAP APIs is mocking requests and responses for unit tests
or local development. With the Soap package, all of those challenges disappear:

1Soap::fake(
2 'http://api.example.com:Customers' => Response::new([['name' => 'Garry'], ['name' => 'Bob']])
3);
4 
5// This request will now return our requested response
6$customers = Soap::to('https://api.example.com')->Customers(['SortBy' => 'name']);
7 
8// When faking, you can perform inspections on requests too!
9Soap::assertSent(function($request, $response) {
10 return in_array('Garry', $response->response);
11});
12 
13Soap::assertSentCount(1);

Using Hooks

Almost every SOAP API has some strange quirk that you need to factor in. It can be frustrating to require messy conditional logic to normalize the data in your code. With the Soap package, you can move all of that logic out of the way using hooks.

For example, imagine that the SOAP API you're using requires a Version parameter with each request. You don't want to include that manually in each location you call the API. Instead, you can place a global hook that will fire before each request to include the Version parameter automatically.

1// AppServiceProvider
2 
3public function boot() {
4 Soap::beforeRequesting(function($request) {
5 $request->set('Version', config('example-soap-api.version'));
6 });
7}

Debugging with Ray

Want to debug a SOAP request in your application. The Soap package ships with support for Spatie's Ray debugging app. Just call
ray()->showSoapRequests(), and you'll get a nicely formatted table with the endpoint, method, request, and response body in the Ray app every time a new SOAP request gets made.

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • Provide Country and Other Locale Data in Laravel Provide Country and Other Locale Data in Laravelorld is a package providing a list of the countries, states, cities, currencies, and timezo… Read More
  • Automatically Sanitize Model DataLaravel Model Sanitize is a package by Touhidur Rahman to handle the sanitization process of model data when creating and updating reco… Read More
  • Standardize Data Formats in Your Laravel ApplicationLaravel Formatters is a package by Michael Rubel that provides a collection of classes you can use to standardize data formats in your … Read More
  • Larastan v1.0 ReleasedLarastan v1.0 ReleasedAfter initially writing about Larastan back in 2018, we are pleased to see the release of Larastan v1.0 this week, a p… Read More
  • Log Routes Statistics for Users and TeamsLog Routes Statistics for Users and Teams Laravel Route Statistics is a package by @bilfeldt to log stats about users and tea… Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Sitaare Zameen Par Full Movie Review
     Here’s a  complete Vue.js tutorial for beginners to master level , structured in a progressive and simple way. It covers all essential topi...
  • Credit card validation in laravel
      Validation rules for credit card using laravel-validation-rules/credit-card package in laravel Install package laravel-validation-rules/cr...
  • C++ in Hindi Introduction
    C ++ का परिचय C ++ एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज है। C ++ को Bjarne Stroustrup द्वारा विकसित किया गया था। C ++ में आने से पह...
  • Write API Integrations in Laravel and PHP Projects with Saloon
    Write API Integrations in Laravel and PHP Projects with Saloon Saloon  is a Laravel/PHP package that allows you to write your API integratio...
  • iOS 17 Force Screen Rotation not working on iPAD only
    I have followed all the links on Google and StackOverFlow, unfortunately, I could not find any reliable solution Specifically for iPad devic...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (69)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • July (4)
  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Sitaare Zameen Par Full Movie Review - 7/7/2025
  • Step-by-step Vue.js Tutorial Beginner to Master - 7/7/2025
  • Tailwindcss best practices for responsive design - 7/1/2025
  • Tailwind CSS Tutorial (Beginner to Master) - 7/1/2025
  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024

Laravel News

  • PHP Fatal Error Backtraces in PHP 8.5 - 7/11/2025
  • Laravel's Rule::contains() for Fluent Array Validation - 7/6/2025
  • NativePHP for Mobile v1.1: Smaller, Smarter, and Ready to Scale - 7/9/2025
  • PHP 8.5 Introduces an INI Diff Option - 7/10/2025
  • Custom Object Casting in Laravel Models - 7/6/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda