top
(README.md)
CURT API v3
=========
---------

> The new version of the CURT API used the [GoEngine Boilerplate](http://github.com/ninnemana/goengine-boilerplate)
for being Content-Type agnostic to XML and JSON. Some of the best features are listed below:

  - Concurrent MySQL access using [Goroutines](http://golang.org/doc/effective_go.html#concurrency)
  - JSON rendering powered by [encoding/json](http://golang.org/pkg/encoding/json/)
  - XML rendering powered by [encoding/xml](http://golang.org/pkg/encoding/xml/)
  - MySQL Persistence using [mymysql](https://github.com/ziutek/mymysql)
  - ACES Compliant vehicle lookup with product groups


--------
Endpoints
---------
---------

> Note: this application is still in heavy development and all endpoints/objects have the potential to change at any time.

> You can view example endpoints for all of the routes in the index_test.go file.

#### Vehicle

---

https://github.com/curt-labs/API/blob/master/docs/Vehicle.md

---
#### Parts

---

*Get Part by Part #

    GET - http://API.curtmfg.com/v3/part/110003?key=[public api key]

*Reverse Lookup by Part #

    GET - http://API.curtmfg.com/v3/part/110003/vehicles?key=[public api key]

----

#### Categories

---

https://github.com/curt-labs/API/blob/master/docs/Categories.md

----

#### Customer

---

*Authentication*

    POST - http://API.curtmfg.com/v3/customer/auth

    Payload
    --------------------------
    email: user@example.com
    password: password

> The following GET route for the customer user authentication is only useful if in the last 6 hours this user has logged in through the POST directive of the /customer/auth endpoint.

    GET - http://API.curtmfg.com/v3/customer/auth?key=c8bd5d89-8d16-11e2-801f-00155d47bb0a

*Customer Locations*

    POST - http://API.curtmfg.com/v3/customer/locations

    Payload
    --------------------------
    key: CEB28F99-F03A-4568-B004-E4FFA87CBDF1

*Customer Users*

    POST - http://API.curtmfg.com/v3/customer/users

    Payload
    --------------------------
    key: CEB28F99-F03A-4568-B004-E4FFA87CBDF1

> The customer users endpoint will only return data if the requesting user is marked as sudo user

Philoshopy
-

> This version if the API is meant to focus on data quantity while maintaining, if not improving performance, by leveraging concurrency. We would like the client to have the ability to make fewer requests to the API Server and be provided with a larger amount of data in the response.

Deployment
-

Deployment will be done using the master branch on Github. Once a commit is pushed to Github
it will route that commit to Drone.io, which will then running CI testing across
the project and then deploy new Docker containers to all CURT servers.

Contributors
-
* Alex Ninneman
    * [Github](http://github.com/ninnemana)
* David Vaini
    * [Github](https://github.com/DavidVaini)
* John Shenk
    * [Github](https://github.com/stinkyfingers)
* Matt Mickelson
    * [Github](https://github.com/mickelsonm)
* Broc Seigneurie
    * [Github](https://github.com/baseigneurie)

License
-

MIT

*Free-ish software? Open, we'll call it open software. Oh and :beers:*

Imports 33 package(s) ΒΆ

  1. github.com/curt-labs/API/controllers/blog
  2. github.com/curt-labs/API/controllers/geography
  3. github.com/curt-labs/API/controllers/middleware
  4. github.com/curt-labs/API/controllers/search
  5. github.com/curt-labs/API/controllers/part
  6. github.com/martini-contrib/cors
  7. github.com/curt-labs/API/controllers/testimonials
  8. github.com/go-martini/martini
  9. github.com/curt-labs/API/controllers/showcase
  10. github.com/curt-labs/API/controllers/cartIntegration
  11. github.com/curt-labs/API/controllers/site
  12. github.com/curt-labs/API/controllers/landingPages
  13. github.com/curt-labs/API/controllers/cart
  14. github.com/curt-labs/API/controllers/videos
  15. github.com/curt-labs/API/controllers/vinLookup
  16. github.com/curt-labs/API/helpers/encoding
  17. github.com/curt-labs/API/controllers/salesrep
  18. github.com/curt-labs/API/controllers/news
  19. github.com/curt-labs/API/controllers/applicationGuide
  20. github.com/curt-labs/API/controllers/dealers
  21. github.com/curt-labs/API/controllers/vehicle
  22. github.com/curt-labs/API/controllers/customer
  23. github.com/curt-labs/API/controllers/faq
  24. github.com/martini-contrib/sessions
  25. github.com/curt-labs/API/controllers/techSupport
  26. github.com/curt-labs/API/controllers/warranty
  27. github.com/curt-labs/API/controllers/apiKeyType
  28. github.com/curt-labs/API/controllers/contact
  29. github.com/curt-labs/API/controllers/brand
  30. github.com/curt-labs/API/controllers/forum
  31. github.com/curt-labs/API/controllers/cache
  32. github.com/curt-labs/API/controllers/webProperty
  33. github.com/curt-labs/API/controllers/category