Потребление услуг отдыха с помощью SmartGWT
Создавая простой клиент для сервиса REST, который я заглушил, я заметил, что класс RestDataSource smartGWT ограничен типом xml, который он может понять. Все ресурсы REST должны отвечать с помощью XML в следующем формате..
<response>
<status>0</status>
<startRow>0</startRow>
<endRow>10</endRow>
<totalRows>50</totalRows>
<data>
<record>
<someField>value</someField>
<someOtherField>value</someOtherField>
</record>
<record>
<someField>value</someField>
<someOtherField>value</someOtherField>
</record>
...
</data>
</response>
.. где единственный вариант - это теги someField/someOtherField.
Эта структура, которая является немногим большим, чем пары имя / значение, не будет работать для нас.Затем я увидел эту демонстрацию на SmartGWT демонстрировать...
Http://www.smartclient.com/smartgwtee/showcase/#data_integration_server_rss
, который показывает, как использовать xml в произвольном формате для отображения таким образом...
package com.smartgwt.sample.showcase.client.webservice;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.data.fields.DataSourceLinkField;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.sample.showcase.client.PanelFactory;
import com.smartgwt.sample.showcase.client.ShowcasePanel;
public class RssSample implements EntryPoint {
public void onModuleLoad() {
DataSource dataSource = new DataSource();
dataSource.setDataURL("http://rss.slashdot.org/Slashdot/slashdot");
dataSource.setRecordXPath("//default:item");
DataSourceTextField titleField = new DataSourceTextField("title", "Title");
DataSourceLinkField linkField = new DataSourceLinkField("link", "Link");
dataSource.setFields(titleField, linkField);
ListGrid grid = new ListGrid();
grid.setAutoFetchData(true);
grid.setHeight(200);
grid.setWidth100();
grid.setDataSource(dataSource);
grid.draw();
}
}
Это работает хорошо получает, но как о ставит, посты удаляет?
Может ли кто-нибудь поделиться каким-либо кодом или указать мне ресурс, который демонстрирует, как выполнять другие операции RESTful из клиента SmartGWT?
Спасибо
1 ответ:
Используйте OperationBindings:
Вы можете управлять url-адресом контакта, HTTP-методом и многими другими вещами на каждой операции CRUD основа.
Обратите внимание, что для использования этих конкретных команд HTTP (PUT и DELETE), вы бы использовали setRequestProperties и setHTTPMethod:
Но имейте в виду, что некоторые старые браузеры не поддерживают эти глаголы.