У меня есть простой REST API, который отправляет данные в формате JSON, такие как это:Replicate REST API с SOAP
http://myapp/color (POST w/ data in JSON) - Creates a new color in DB
http://myapp/color/id (GET) - Fetches details for a color from DB
http://myapp/color (GET) - Fetches details for all colors in DB
Я хотел бы создать SOAP API для этих трех функций. Поэтому я собираюсь с Spring-WS.
Я создал API SOAP для создания. Со следующим XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:hr="http://www.myveryimportantcompany.com/tr/schemas"
targetNamespace="http://www.myveryimportantcompany.com/tr/schemas"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="ColorRequest">
<xs:complexType>
<xs:all>
<xs:element name="Color" type="hr:ColorType"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:complexType name="ColorType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ColorResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="status" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Я также написал функциональный тест для выше которого работает отлично.
Вопросы - Я никогда не создавал SOAP WS в прошлом, поэтому, пожалуйста, игнорируйте, если вопросы глупы.
- Как выглядит XSD для оставшихся двух функций?
- Нужен ли мне отдельный XSD для каждой функции?
- Могу ли я проверить службу SOAP с помощью графического интерфейса? Я дал SOAP GUI шоу, но ему нужен WSDL. Как я могу это создать?
PS: Я использую плагин Spring-WS от grails.
Вы просили об этом, у вас оно есть. :-). Посмотрите последнюю версию плагина [springws] (https://github.com/dmahapatro/grails-springws) и соответствующее [пример приложения] (https://github.com/dmahapatro/grails-springws-sample) , Просмотрите и дайте мне знать, если у вас есть какие-либо комментарии. – dmahapatro