Quiero probar la API REST en mi sitio de Rails. ¿Cuál es la forma más fácil/mejor de hacer esto con el marco de prueba de rieles? Solo estoy haciendo las cosas de recursos estándar, así que me pregunto en particular, ya que esto es tan estándar estándar, si hay alguna forma automática de probar esto.Mejor forma de probar los rieles API REST XML?
Respuesta
Recomendaría usar Cucumber. Pepino emula un navegador y puede verificar los resultados que obtiene. Esto funciona bien para solicitudes XML, así como JSON y HTML antiguo simple.
Si está buscando probar las API que ha creado manualmente, ¡puede intentar esto! Parece que funciona bien!
REST Client - Simply Test REST APIs
No se puede hacer la comprobación automática con esto, sin embargo!
Eso no es realmente REST si los URI están disponibles como parte de la API. Solo puede haber un URI de punto de entrada en una API RESTful. – aehlke
Esto no es automático, pero es realmente genial para ver lo que está haciendo su API.
Les advierto dándoles su nombre de usuario/contraseña para las solicitudes autorizadas. Sugeriría tomar el código y la instalación para uso privado en ese caso. https://github.com/defunkt/hurl –
Utilizamos RESTClient un complemento de Firefox para visitar y servicios REST prueba.
https://addons.mozilla.org/en-US/firefox/addon/9780
Hemos estado usando esto en mi equipo durante un par de meses y yo no pensamos que podríamos hacer nuestro trabajo sin ella. Es muy fácil de usar y de usar.
Si obtiene la última versión de Sourceforge, incluso hay compatibilidad con Oauth, algo que no he encontrado en ningún otro cliente de REST.
http://sourceforge.net/projects/restclient/develop
Uno, de muchos, ventajas de utilizar un complemento de Firefox es que es plattform cruz. Usamos la misma herramienta (RESTclient) para todos los miembros de nuestro equipo, aunque utilizamos diferentes sistemas operativos (Mac, Linux, Windows).
Usted puede intentar curl
uso --form-string
para pasar los datos del formulario al servidor
(1)
curl --form-string "book_key=BOOK1234" --form-string "author=Gandhi" -X PUT 'http://localhost:3000/api/show_all_books_of_a_particular_author?params1=value1¶m2=value2'
En el controlador obtendrá params['book_key']=BOOK1234
y params["author"]="Gandhi"
uso -F "[email protected];type=application/msword;"
(2)
curl -F "[email protected]_experiments_with_truth.pdf;type=application/pdf;" --form-string "author=Gandhi" --form-string "[email protected]" -X PUT 'http://localhost:3000/api/submit_a_pdf_book?params1=value1¶m2=value2'
En el controlador obtendrá params['email]="[email protected]"
y params["author"]="Gandhi"
y params["document"] = "File(object)"
. Esto solo funciona si test.doc
está en el directorio actual. No olvide pasar mime-type
ya que el servidor puede tomarlo como "application octet-stream"
y necesita escribir en el código para manejar esto por separado.
Lancé mi propia solución a esto y pensé que sería útil.Escribí un módulo que usa las gemas json, curb y addressable para enviar solicitudes GET, PUT, POST y DELETE a localhost: 3000. Puede solicitar XML (como la pregunta original solicitada) o json. Devuelve el cuerpo de respuesta como Hash. Es principalmente un envoltorio alrededor de la joya de la acera, que creo que tiene una sintaxis horrenda.
Tenga en cuenta que estoy cargando automáticamente el archivo api_key
. Esto se puede deshabilitar pasando :api_key => false
o roto usando api_key => "wrong"
. Es posible que desee dejar esto o modificarlo para que se ajuste a su esquema de autenticación.
Aquí está el módulo:
module ApiTesting
# requres the json, curb, and addressable gems
require "addressable/uri"
def api_call(path, verb, query_hash={}, options={})
options.reverse_merge! :api_key => "abc1234", :format => "xml"
query_hash.reverse_merge!({:api_key => options["api_key"]}) if options[:api_key]
query = to_query_string(query_hash)
full_path = "http://localhost:3000/#{path}.#{options[:format]}?#{query}"
response = case verb
when :get
Curl::Easy.perform(full_path)
when :post
Curl::Easy.http_post("http://localhost:3000/#{path}.#{options[:format]}", query)
when :put
Curl::Easy.http_put(full_path, nil)
when :delete
Curl::Easy.http_delete(full_path)
end
case options[:format]
when "xml"
Hash.from_xml(response.body_str)
when "json"
JSON.parse(response.body_str)
end
end
private
def to_query_string(val)
uri = Addressable::URI.new
uri.query_values = val
uri.query
end
end
Y aquí hay algunos ejemplos sencillos: Atributos recursos requirente GET:
api_call("calls/41", :get)
Creación de recursos con la publicación:
api_call("people", :post, {:person => {:first => "Robert", :last => "Smith" } })
recursos de Actualización con PUT:
api_call("people/21", :put, {:person => { :first => "Bob" } })
Eliminación de recursos con DELETE:
api_call("calls/41", :delete)
Desactivación de inserción automática de api_key:
api_call("calls/41", :get, {}, {:api_key => false})
Utilice la api_key equivocada:
api_call("calls/41", :get, {}, {:api_key => "wrong"})
uso como JSON (por defecto es xml):
api_call("calls/41", :get, {}, {:format => "json"})
¿por qué no se acumula esto en una joya que los rieles pueden aprovechar durante las pruebas? – masukomi
Definitivamente debes convertirlo en una joya. Buen trabajo –
- 1. Probar API REST
- 2. ¿La mejor manera de probar una API REST?
- 3. REST/XML Api con Java
- 4. API REST interna
- 5. ¿Cuál es la forma más fácil de probar una API REST de catalizador?
- 6. La mejor forma de probar los repositorios que usan DbContext
- 7. Rest Server o API para probar mi cliente Restful?
- 8. Streaming API vs Rest API?
- 9. Forma correcta de probar gemas
- 10. ¿Qué herramientas usas para probar tu API REST pública?
- 11. Pruebas unitarias API REST
- 12. ¿Cómo probar la unidad de su API?
- 13. Despliegue de rieles: la mejor forma
- 14. ¿Cómo documenta una API REST?
- 15. ¿Cuál es la mejor forma de generar la documentación de la API REST?
- 16. La mejor forma de consumir JSON desde API REST en .NET
- 17. ¿Cuál es la mejor API REST de Java?
- 18. MVC2 o WCF para una API REST XML/JSON?
- 19. API REST para Java?
- 20. Rieles: Probar producción
- 21. de autenticación de API REST
- 22. ¿Qué marco de Scala utilizar para probar los servicios REST?
- 23. API REST Autenticación MongoDB
- 24. ¿La mejor manera de probar la aplicación web de los rieles?
- 25. Ember.js & REST API
- 26. ¿Cuáles son los méritos relativos de CSV, JSON y XML para una API REST?
- 27. C# REST API Client
- 28. ¿Cómo escribir una API REST?
- 29. Formato de fecha recomendado para API REST
- 30. Rieles: ¿cómo probar state_machine?
¿Quiere decir cómo puede hacer solicitudes de prueba a la URL utilizando algún tipo de herramienta? ¿O estás hablando de crear una prueba de unidad de automatización de algún tipo? – laz