Version: current

# Class SOAPModelAccess

Basic SOAP Server to access and modify DataObject instances. You can enable SOAP access on a DataObject by setting `DataObject::$api_access` to true. This means that you'll also enable a RESTful API through `RestfulServer`.

Usage - Getting a record:

    $c = new SoapClient('http://mysite.com/soap/v1/wsdl');
    echo $c->getXML("MyClassName", 99); // gets record #99 as xml

Usage - Updating a record:

    $c = new SoapClient('http://mysite.com/soap/v1/wsdl');
    $data = array('MyProperty' => 'MyUpdatedValue');
    echo $c->putXML("MyClassName", 99, null, $data);

Usage - Creating a record:

    $c = new SoapClient('http://mysite.com/soap/v1/wsdl');
    $data = array('MyProperty' => 'MyValue');
    echo $c->putXML("MyClassName", null, null, $data);

Usage - Creating a record:

    $c = new SoapClient('http://mysite.com/soap/v1/wsdl');
    echo $c->deleteXML("MyClassName");

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  Controller
  SapphireSoapServer
  SOAPModelAccess

Package: sapphire\api
Located at sapphire/api/SOAPModelAccess.php

## Methods summary

`public` | # `Link( mixed $action = null )`
`public string` | # `getXML( string $class, Number $id, string $relation = false, mixed $username = null, mixed $password = null )` Used to emulate RESTful GET requests with XML data. Used to emulate RESTful GET requests with XML data. #### Parameters $class string $class $id Number $id $relation string $relation Relation name $username $password #### Returns `string` string
`public string` | # `getJSON( string $class, Number $id, string $relation = false, string $username = null, string $password = null )` Used to emulate RESTful GET requests with JSON data. Used to emulate RESTful GET requests with JSON data. #### Parameters $class string $class $id Number $id $relation string $relation Relation name $username string $username $password string $password #### Returns `string` string
`public string` | # `putXML( string $class, Number $id = false, string $relation = false, array $data, string $username = null, string $password = null )` Used to emulate RESTful POST and PUT requests with XML data. Used to emulate RESTful POST and PUT requests with XML data. #### Parameters $class string $class $id Number $id $relation string $relation Relation name $data array $data $username string $username $password string $password #### Returns `string` string
`public string` | # `putJSON( string $class = false, Number $id = false, string $relation = false, array $data, string $username = null, string $password = null )` Used to emulate RESTful POST and PUT requests with JSON data. Used to emulate RESTful POST and PUT requests with JSON data. #### Parameters $class string $class $id Number $id $relation string $relation Relation name $data array $data $username string $username $password string $password #### Returns `string` string
`public string` | # `deleteXML( string $class, Number $id, string $relation = false, string $username = null, string $password = null )` Used to emulate RESTful DELETE requests. Used to emulate RESTful DELETE requests. #### Parameters $class string $class $id Number $id $relation string $relation Relation name $username string $username $password string $password #### Returns `string` string
`public string` | # `deleteJSON( string $class, Number $id, string $relation = false, string $username = null, string $password = null )` Used to emulate RESTful DELETE requests. Used to emulate RESTful DELETE requests. #### Parameters $class string $class $id Number $id $relation string $relation Relation name $username string $username $password string $password #### Returns `string` string
`protected` | # `authenticate( string $username, string $password )` Faking an HTTP Basicauth login in the PHP environment that RestfulServer can pick up. Faking an HTTP Basicauth login in the PHP environment that RestfulServer can pick up. #### Parameters $username string $username Username $password string $password Plaintext password
`protected string` | # `buildRestfulURL( string $class, Number $id, string $relation, string $extension )` #### Parameters $class string $class $id Number $id $relation string $relation $extension string $extension #### Returns `string` string
`protected string` | # `getErrorMessage( `SS_HTTPResponse` $response )` #### Parameters $response SS_HTTPResponse $response #### Returns `string` XML string containing the HTTP error message

### Methods inherited from SapphireSoapServer

`Methods()`, `ServiceURL()`, `TargetNamespace()`, `getWSDLURL()`, `index()`, `wsdl()`

### Methods inherited from Controller

`CurrentMember()`, `Now()`, `PastMember()`, `PastVisitor()`, `can()`, `curr()`, `defaultAction()`, `disableBasicAuth()`, `getAction()`, `getFormOwner()`, `getRequest()`, `getResponse()`, `getSession()`, `getURLParams()`, `getViewer()`, `handleAction()`, `handleRequest()`, `hasAction()`, `hasActionTemplate()`, `has_curr()`, `init()`, `isAjax()`, `join_links()`, `popCurrent()`, `pushCurrent()`, `redirect()`, `redirectBack()`, `redirectedTo()`, `render()`, `setSession()`, `setURLParams()`

### Methods inherited from RequestHandler

`__construct()`, `allowedActions()`, `checkAccessAction()`, `httpError()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `defineMethods()`, `escapeTypeForField()`, `getField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `hasField()`, `hasValue()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`, `setField()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `exists()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`public static array` | $methods | # Map of method name to arguments. Map of method name to arguments.

### Properties inherited from SapphireSoapServer

`$xsd_types`

### Properties inherited from Controller

`$action`, `$allowed_actions`, `$baseInitCalled`, `$basicAuthEnabled`, `$controller_stack`, `$request`, `$requestParams`, `$response`, `$session`, `$urlParams`, `$url_handlers`

### Properties inherited from RequestHandler

`$brokenOnConstruct`

### Properties inherited from ViewableData

`$casting`, `$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -