rest - example - java web service authentication soap header
Grails 2.4.3: Consumir un servicio REST (2)
Encontré el complemento REST Client Builder , que estaba mejor documentado y funcionó mucho mejor para mí. ¡Gracias a Graeme Rocher por eso! Aquí hay un ejemplo simple que con suerte será útil para otros.
import grails.plugins.rest.client.RestBuilder
import grails.transaction.Transactional
@Transactional
class BatchInstanceService {
def getBatch(String id) {
String url = "https://foo.com/batch/$id"
def resp = new RestBuilder().get(url) {
header ''Authorization'', ''Basic base64EncodedUsername&Password''
}
}
}
Y aquí está la clase de prueba.
import grails.test.mixin.*
import org.apache.commons.httpclient.*
import org.apache.commons.httpclient.methods.*
import org.springframework.http.HttpStatus
import spock.lang.Specification
@TestFor(BatchInstanceService)
class BatchInstanceServiceSpec extends Specification {
void "test get batch" () {
when:
def resp = service.restart(''BI1234'')
then:
resp.status == HttpStatus.OK.value
}
}
El objeto devuelto, resp
, es una instancia de la clase ResponseEntity .
Realmente espero que esto ayude. Si hay mejores ejemplos, publique enlaces a ellos. ¡Gracias!
¿Cómo consumo un servicio web RESTful en Grails 2.4.3. También necesito usar Autenticación básica.
Pensarías que ya habría una buena respuesta a esta pregunta, pero realmente he tenido problemas para encontrarla. Muchas respuestas apuntan hacia el complemento de descanso Grails, que he intentado pero no pude conseguir para mí. Creo que probablemente estoy luchando con los documentos y usándolo mal.
Sí, puede pasar una cadena de estilo UrlTemplate y el mapa de los parámetros url de par nombre / valor que se van a sustituir. Además, hay otro acceso directo a los encabezados de autenticación que se autocodificará ...
def urlTemplate = "https://foo.com/batch/{id}"
def params = [id: $id]
def resp = new RestBuilder().get(urlTemplate, params) {
auth username, password
}