:doctype: book
image:https://github.com/toedter/hal-explorer/workflows/Build/badge.svg["build", link="https://github.com/toedter/hal-explorer/actions"] image:https://codecov.io/gh/toedter/hal-explorer/branch/master/graph/badge.svg["coverage", link="https://codecov.io/gh/toedter/hal-explorer"] image:https://img.shields.io/maven-central/v/org.webjars/hal-explorer?color=green["maven-central", link="https://search.maven.org/artifact/org.webjars/hal-explorer"] image:https://img.shields.io/badge/license-MIT-blue.svg["MIT", link="http://toedter.mit-license.org"]
= HAL Explorer
With HAL Explorer you can browse and explore http://stateless.co/hal_specification.html[HAL] and https://rwcbook.github.io/hal-forms/[HAL-FORMS] based RESTful Hypermedia APIs. HAL Explorer was inspired by Mike Kelly's https://github.com/mikekelly/hal-browser[HAL-Browser]. HAL Explorer also supports Spring Profiles.
== Documentation, Demos & Cloud Deployment
Here you find the documentation for the latest release and the current snapshot, as well as a demo (with examples) of the latest release and the current snapshot: |=== | Release | 1.2.2 | https://toedter.github.io/hal-explorer/release/reference-doc/[Reference Documentation] | https://toedter.github.io/hal-explorer/release/hal-explorer/#theme=Cosmo&uri=examples/examples.hal-forms.json[HAL Explorer Demo] | Snapshot | 1.2.3-SNAPSHOT | https://toedter.github.io/hal-explorer/snapshot/reference-doc/[Reference Documentation] | https://toedter.github.io/hal-explorer/snapshot/hal-explorer/#theme=Cosmo&uri=examples/examples.hal-forms.json[HAL Explorer Demo] |===
You also find current release at https://hal-explorer.com.
== TL;DR
image::./doc/img/hal-explorer.png[HAL Explorer]
== Features
== Development Server
Run yarn start
for a dev server. Navigate to http://localhost:4200/.
The app will automatically reload if you change any of the source files.
The development server has a build-in proxy configuration
so that all calls to /api
are forwarded to localhost:8080/api
.
This is convenient when you want to test a local server without having to deal with CORS.
If you run yarn startl
, an additional file server is started with port 3000.
In the test-data directory, you find some JSON examples. Try it out with the URL
http://localhost:4200/#uri=http://localhost:3000/movies.hal-forms.json.
== Build
Run yarn build
to build the project in production mode.
The build artifacts will be stored in the dist/
directory.
== Gradle/Java Build Support
If you have Java installed, you can also build the project with Gradle.
The Gradle build will install Node.js locally in the project directory.
Run ./gradlew build
to build the project in production mode.
The build artifacts will be stored in the dist/
directory.
== Integration in your Backends
If you want to use a released version of HAL Explorer in a Java-based project, you could define a dependency to the HAL Explorer WebJar.
Maven: [source,xml]
Gradle: [source, Groovy] implementation 'org.webjars:hal-explorer:1.2.2'
When you use the WebJar with Spring Boot, you can access the HAL Explorer at /webjars/hal-explorer/1.2.2/index.html
.
The easiest way to integrate the upstream version of HAL Explorer into your backend would be to clone this Git repo,
do a production build and then copy the content of the dist folder to a location accessible by your backend server.
When you use Spring Boot, a good location in your project's source tree would be
src/main/java/resources/static/hal-explorer.
== Running Tests
yarn test
to run the unit test suite against your default browser.yarn test-headless
to run the unit test suite against headless Chrome.yarn e2e
to run the e2e test suite against your default browser.yarn e2e-headless
to run the e2e test suite against headless Chrome.Take a look at package.json
for more test options.
[[license]] == License
MIT, see http://toedter.mit-license.org