reqcord 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/Gemfile +5 -0
  4. data/README.md +13 -0
  5. data/gemfiles/rails_7.1.gemfile +13 -0
  6. data/gemfiles/rails_7.2.gemfile +13 -0
  7. data/gemfiles/rails_8.0.gemfile +13 -0
  8. data/gemfiles/rails_8.1.gemfile +13 -0
  9. data/lib/reqcord/version.rb +1 -1
  10. data/reqcord.gemspec +18 -4
  11. metadata +65 -217
  12. data/.gitignore +0 -8
  13. data/Gemfile.lock +0 -171
  14. data/examples/complex-spec-app/.rspec +0 -1
  15. data/examples/complex-spec-app/README.md +0 -21
  16. data/examples/complex-spec-app/app.rb +0 -363
  17. data/examples/complex-spec-app/docs/api/README.md +0 -104
  18. data/examples/complex-spec-app/docs/api/api/v1/admin/products/create.md +0 -117
  19. data/examples/complex-spec-app/docs/api/api/v1/admin/products/destroy.md +0 -51
  20. data/examples/complex-spec-app/docs/api/api/v1/admin/products/index.md +0 -11
  21. data/examples/complex-spec-app/docs/api/api/v1/admin/products/list.md +0 -106
  22. data/examples/complex-spec-app/docs/api/api/v1/auth/index.md +0 -9
  23. data/examples/complex-spec-app/docs/api/api/v1/auth/login.md +0 -76
  24. data/examples/complex-spec-app/docs/api/api/v1/cart-items/create.md +0 -91
  25. data/examples/complex-spec-app/docs/api/api/v1/cart-items/destroy.md +0 -51
  26. data/examples/complex-spec-app/docs/api/api/v1/cart-items/index.md +0 -10
  27. data/examples/complex-spec-app/docs/api/api/v1/carts/checkout.md +0 -102
  28. data/examples/complex-spec-app/docs/api/api/v1/carts/index.md +0 -10
  29. data/examples/complex-spec-app/docs/api/api/v1/carts/show.md +0 -73
  30. data/examples/complex-spec-app/docs/api/api/v1/home/index.md +0 -9
  31. data/examples/complex-spec-app/docs/api/api/v1/home/list.md +0 -47
  32. data/examples/complex-spec-app/docs/api/api/v1/notes/create.md +0 -94
  33. data/examples/complex-spec-app/docs/api/api/v1/notes/index.md +0 -10
  34. data/examples/complex-spec-app/docs/api/api/v1/notes/list.md +0 -61
  35. data/examples/complex-spec-app/docs/api/api/v1/orders/cancel.md +0 -69
  36. data/examples/complex-spec-app/docs/api/api/v1/orders/create.md +0 -150
  37. data/examples/complex-spec-app/docs/api/api/v1/orders/destroy.md +0 -37
  38. data/examples/complex-spec-app/docs/api/api/v1/orders/index.md +0 -13
  39. data/examples/complex-spec-app/docs/api/api/v1/orders/list.md +0 -78
  40. data/examples/complex-spec-app/docs/api/api/v1/orders/show.md +0 -83
  41. data/examples/complex-spec-app/docs/api/api/v1/products/index.md +0 -11
  42. data/examples/complex-spec-app/docs/api/api/v1/products/list.md +0 -83
  43. data/examples/complex-spec-app/docs/api/api/v1/products/search.md +0 -88
  44. data/examples/complex-spec-app/docs/api/api/v1/products/show.md +0 -71
  45. data/examples/complex-spec-app/docs/api/api/v1/profiles/index.md +0 -10
  46. data/examples/complex-spec-app/docs/api/api/v1/profiles/show.md +0 -61
  47. data/examples/complex-spec-app/docs/api/api/v1/profiles/update.md +0 -91
  48. data/examples/complex-spec-app/docs/api/api/v2/products/index.md +0 -9
  49. data/examples/complex-spec-app/docs/api/api/v2/products/list.md +0 -77
  50. data/examples/complex-spec-app/docs/api/curl/api/v1/admin/products/create.sh +0 -18
  51. data/examples/complex-spec-app/docs/api/curl/api/v1/admin/products/destroy.sh +0 -9
  52. data/examples/complex-spec-app/docs/api/curl/api/v1/admin/products/list.sh +0 -9
  53. data/examples/complex-spec-app/docs/api/curl/api/v1/auth/login.sh +0 -9
  54. data/examples/complex-spec-app/docs/api/curl/api/v1/cart-items/create.sh +0 -16
  55. data/examples/complex-spec-app/docs/api/curl/api/v1/cart-items/destroy.sh +0 -9
  56. data/examples/complex-spec-app/docs/api/curl/api/v1/carts/checkout.sh +0 -13
  57. data/examples/complex-spec-app/docs/api/curl/api/v1/carts/show.sh +0 -9
  58. data/examples/complex-spec-app/docs/api/curl/api/v1/home/list.sh +0 -8
  59. data/examples/complex-spec-app/docs/api/curl/api/v1/notes/create.sh +0 -15
  60. data/examples/complex-spec-app/docs/api/curl/api/v1/notes/list.sh +0 -9
  61. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/cancel.sh +0 -9
  62. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/create.sh +0 -29
  63. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/destroy.sh +0 -9
  64. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/list.sh +0 -9
  65. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/show.sh +0 -9
  66. data/examples/complex-spec-app/docs/api/curl/api/v1/products/list.sh +0 -8
  67. data/examples/complex-spec-app/docs/api/curl/api/v1/products/search.sh +0 -8
  68. data/examples/complex-spec-app/docs/api/curl/api/v1/products/show.sh +0 -8
  69. data/examples/complex-spec-app/docs/api/curl/api/v1/profiles/show.sh +0 -9
  70. data/examples/complex-spec-app/docs/api/curl/api/v1/profiles/update.sh +0 -16
  71. data/examples/complex-spec-app/docs/api/curl/api/v2/products/list.sh +0 -8
  72. data/examples/complex-spec-app/docs/api/dataset.json +0 -5116
  73. data/examples/complex-spec-app/docs/api/postman/collection.json +0 -2519
  74. data/examples/complex-spec-app/generate.rb +0 -14
  75. data/examples/complex-spec-app/reqcord.yml +0 -28
  76. data/examples/complex-spec-app/spec/requests/admin_spec.rb +0 -67
  77. data/examples/complex-spec-app/spec/requests/cart_spec.rb +0 -61
  78. data/examples/complex-spec-app/spec/requests/home_and_auth_spec.rb +0 -49
  79. data/examples/complex-spec-app/spec/requests/orders_spec.rb +0 -124
  80. data/examples/complex-spec-app/spec/requests/products_spec.rb +0 -65
  81. data/examples/complex-spec-app/spec/spec_helper.rb +0 -17
  82. data/examples/complex-test-app/README.md +0 -40
  83. data/examples/complex-test-app/app.rb +0 -384
  84. data/examples/complex-test-app/docs/api/README.md +0 -104
  85. data/examples/complex-test-app/docs/api/api/v1/admin/products/create.md +0 -117
  86. data/examples/complex-test-app/docs/api/api/v1/admin/products/destroy.md +0 -51
  87. data/examples/complex-test-app/docs/api/api/v1/admin/products/index.md +0 -11
  88. data/examples/complex-test-app/docs/api/api/v1/admin/products/list.md +0 -106
  89. data/examples/complex-test-app/docs/api/api/v1/auth/index.md +0 -9
  90. data/examples/complex-test-app/docs/api/api/v1/auth/login.md +0 -76
  91. data/examples/complex-test-app/docs/api/api/v1/cart-items/create.md +0 -91
  92. data/examples/complex-test-app/docs/api/api/v1/cart-items/destroy.md +0 -51
  93. data/examples/complex-test-app/docs/api/api/v1/cart-items/index.md +0 -10
  94. data/examples/complex-test-app/docs/api/api/v1/carts/checkout.md +0 -102
  95. data/examples/complex-test-app/docs/api/api/v1/carts/index.md +0 -10
  96. data/examples/complex-test-app/docs/api/api/v1/carts/show.md +0 -73
  97. data/examples/complex-test-app/docs/api/api/v1/home/index.md +0 -9
  98. data/examples/complex-test-app/docs/api/api/v1/home/list.md +0 -47
  99. data/examples/complex-test-app/docs/api/api/v1/notes/create.md +0 -94
  100. data/examples/complex-test-app/docs/api/api/v1/notes/index.md +0 -10
  101. data/examples/complex-test-app/docs/api/api/v1/notes/list.md +0 -61
  102. data/examples/complex-test-app/docs/api/api/v1/orders/cancel.md +0 -69
  103. data/examples/complex-test-app/docs/api/api/v1/orders/create.md +0 -150
  104. data/examples/complex-test-app/docs/api/api/v1/orders/destroy.md +0 -37
  105. data/examples/complex-test-app/docs/api/api/v1/orders/index.md +0 -13
  106. data/examples/complex-test-app/docs/api/api/v1/orders/list.md +0 -71
  107. data/examples/complex-test-app/docs/api/api/v1/orders/show.md +0 -83
  108. data/examples/complex-test-app/docs/api/api/v1/products/index.md +0 -11
  109. data/examples/complex-test-app/docs/api/api/v1/products/list.md +0 -83
  110. data/examples/complex-test-app/docs/api/api/v1/products/search.md +0 -88
  111. data/examples/complex-test-app/docs/api/api/v1/products/show.md +0 -71
  112. data/examples/complex-test-app/docs/api/api/v1/profiles/index.md +0 -10
  113. data/examples/complex-test-app/docs/api/api/v1/profiles/show.md +0 -61
  114. data/examples/complex-test-app/docs/api/api/v1/profiles/update.md +0 -91
  115. data/examples/complex-test-app/docs/api/api/v2/products/index.md +0 -9
  116. data/examples/complex-test-app/docs/api/api/v2/products/list.md +0 -77
  117. data/examples/complex-test-app/docs/api/curl/api/v1/admin/products/create.sh +0 -18
  118. data/examples/complex-test-app/docs/api/curl/api/v1/admin/products/destroy.sh +0 -9
  119. data/examples/complex-test-app/docs/api/curl/api/v1/admin/products/list.sh +0 -9
  120. data/examples/complex-test-app/docs/api/curl/api/v1/auth/login.sh +0 -9
  121. data/examples/complex-test-app/docs/api/curl/api/v1/cart-items/create.sh +0 -16
  122. data/examples/complex-test-app/docs/api/curl/api/v1/cart-items/destroy.sh +0 -9
  123. data/examples/complex-test-app/docs/api/curl/api/v1/carts/checkout.sh +0 -13
  124. data/examples/complex-test-app/docs/api/curl/api/v1/carts/show.sh +0 -9
  125. data/examples/complex-test-app/docs/api/curl/api/v1/home/list.sh +0 -8
  126. data/examples/complex-test-app/docs/api/curl/api/v1/notes/create.sh +0 -15
  127. data/examples/complex-test-app/docs/api/curl/api/v1/notes/list.sh +0 -9
  128. data/examples/complex-test-app/docs/api/curl/api/v1/orders/cancel.sh +0 -9
  129. data/examples/complex-test-app/docs/api/curl/api/v1/orders/create.sh +0 -29
  130. data/examples/complex-test-app/docs/api/curl/api/v1/orders/destroy.sh +0 -9
  131. data/examples/complex-test-app/docs/api/curl/api/v1/orders/list.sh +0 -9
  132. data/examples/complex-test-app/docs/api/curl/api/v1/orders/show.sh +0 -9
  133. data/examples/complex-test-app/docs/api/curl/api/v1/products/list.sh +0 -8
  134. data/examples/complex-test-app/docs/api/curl/api/v1/products/search.sh +0 -8
  135. data/examples/complex-test-app/docs/api/curl/api/v1/products/show.sh +0 -8
  136. data/examples/complex-test-app/docs/api/curl/api/v1/profiles/show.sh +0 -9
  137. data/examples/complex-test-app/docs/api/curl/api/v1/profiles/update.sh +0 -16
  138. data/examples/complex-test-app/docs/api/curl/api/v2/products/list.sh +0 -8
  139. data/examples/complex-test-app/docs/api/dataset.json +0 -5109
  140. data/examples/complex-test-app/docs/api/postman/collection.json +0 -2568
  141. data/examples/complex-test-app/generate.rb +0 -14
  142. data/examples/complex-test-app/reqcord.yml +0 -28
  143. data/examples/complex-test-app/test/integration/admin_test.rb +0 -70
  144. data/examples/complex-test-app/test/integration/cart_test.rb +0 -64
  145. data/examples/complex-test-app/test/integration/home_and_auth_test.rb +0 -53
  146. data/examples/complex-test-app/test/integration/orders_test.rb +0 -127
  147. data/examples/complex-test-app/test/integration/products_test.rb +0 -66
  148. data/examples/spec-app/.rspec +0 -1
  149. data/examples/spec-app/README.md +0 -36
  150. data/examples/spec-app/app.rb +0 -209
  151. data/examples/spec-app/docs/api/README.md +0 -45
  152. data/examples/spec-app/docs/api/api/v1/customers/create.md +0 -95
  153. data/examples/spec-app/docs/api/api/v1/customers/index.md +0 -11
  154. data/examples/spec-app/docs/api/api/v1/customers/list.md +0 -67
  155. data/examples/spec-app/docs/api/api/v1/customers/show.md +0 -65
  156. data/examples/spec-app/docs/api/api/v1/tasks/complete.md +0 -51
  157. data/examples/spec-app/docs/api/api/v1/tasks/create.md +0 -90
  158. data/examples/spec-app/docs/api/api/v1/tasks/destroy.md +0 -35
  159. data/examples/spec-app/docs/api/api/v1/tasks/index.md +0 -14
  160. data/examples/spec-app/docs/api/api/v1/tasks/list.md +0 -65
  161. data/examples/spec-app/docs/api/api/v1/tasks/show.md +0 -65
  162. data/examples/spec-app/docs/api/api/v1/tasks/update.md +0 -74
  163. data/examples/spec-app/docs/api/api/v1/users/create.md +0 -95
  164. data/examples/spec-app/docs/api/api/v1/users/index.md +0 -11
  165. data/examples/spec-app/docs/api/api/v1/users/list.md +0 -67
  166. data/examples/spec-app/docs/api/api/v1/users/show.md +0 -65
  167. data/examples/spec-app/docs/api/curl/api/v1/customers/create.sh +0 -17
  168. data/examples/spec-app/docs/api/curl/api/v1/customers/list.sh +0 -9
  169. data/examples/spec-app/docs/api/curl/api/v1/customers/show.sh +0 -9
  170. data/examples/spec-app/docs/api/curl/api/v1/tasks/complete.sh +0 -8
  171. data/examples/spec-app/docs/api/curl/api/v1/tasks/create.sh +0 -15
  172. data/examples/spec-app/docs/api/curl/api/v1/tasks/destroy.sh +0 -8
  173. data/examples/spec-app/docs/api/curl/api/v1/tasks/list.sh +0 -8
  174. data/examples/spec-app/docs/api/curl/api/v1/tasks/show.sh +0 -8
  175. data/examples/spec-app/docs/api/curl/api/v1/tasks/update.sh +0 -14
  176. data/examples/spec-app/docs/api/curl/api/v1/users/create.sh +0 -17
  177. data/examples/spec-app/docs/api/curl/api/v1/users/list.sh +0 -9
  178. data/examples/spec-app/docs/api/curl/api/v1/users/show.sh +0 -9
  179. data/examples/spec-app/docs/api/dataset.json +0 -2402
  180. data/examples/spec-app/docs/api/postman/collection.json +0 -1290
  181. data/examples/spec-app/generate.rb +0 -14
  182. data/examples/spec-app/reqcord.yml +0 -27
  183. data/examples/spec-app/spec/requests/customers_spec.rb +0 -71
  184. data/examples/spec-app/spec/requests/tasks_spec.rb +0 -78
  185. data/examples/spec-app/spec/requests/users_spec.rb +0 -68
  186. data/examples/spec-app/spec/spec_helper.rb +0 -17
  187. data/examples/test-app/README.md +0 -57
  188. data/examples/test-app/app.rb +0 -212
  189. data/examples/test-app/docs/api/README.md +0 -45
  190. data/examples/test-app/docs/api/api/v1/customers/create.md +0 -95
  191. data/examples/test-app/docs/api/api/v1/customers/index.md +0 -11
  192. data/examples/test-app/docs/api/api/v1/customers/list.md +0 -67
  193. data/examples/test-app/docs/api/api/v1/customers/show.md +0 -65
  194. data/examples/test-app/docs/api/api/v1/tasks/complete.md +0 -51
  195. data/examples/test-app/docs/api/api/v1/tasks/create.md +0 -90
  196. data/examples/test-app/docs/api/api/v1/tasks/destroy.md +0 -35
  197. data/examples/test-app/docs/api/api/v1/tasks/index.md +0 -14
  198. data/examples/test-app/docs/api/api/v1/tasks/list.md +0 -65
  199. data/examples/test-app/docs/api/api/v1/tasks/show.md +0 -65
  200. data/examples/test-app/docs/api/api/v1/tasks/update.md +0 -74
  201. data/examples/test-app/docs/api/api/v1/users/create.md +0 -95
  202. data/examples/test-app/docs/api/api/v1/users/index.md +0 -11
  203. data/examples/test-app/docs/api/api/v1/users/list.md +0 -67
  204. data/examples/test-app/docs/api/api/v1/users/show.md +0 -65
  205. data/examples/test-app/docs/api/curl/api/v1/customers/create.sh +0 -17
  206. data/examples/test-app/docs/api/curl/api/v1/customers/list.sh +0 -9
  207. data/examples/test-app/docs/api/curl/api/v1/customers/show.sh +0 -9
  208. data/examples/test-app/docs/api/curl/api/v1/tasks/complete.sh +0 -8
  209. data/examples/test-app/docs/api/curl/api/v1/tasks/create.sh +0 -15
  210. data/examples/test-app/docs/api/curl/api/v1/tasks/destroy.sh +0 -8
  211. data/examples/test-app/docs/api/curl/api/v1/tasks/list.sh +0 -8
  212. data/examples/test-app/docs/api/curl/api/v1/tasks/show.sh +0 -8
  213. data/examples/test-app/docs/api/curl/api/v1/tasks/update.sh +0 -14
  214. data/examples/test-app/docs/api/curl/api/v1/users/create.sh +0 -17
  215. data/examples/test-app/docs/api/curl/api/v1/users/list.sh +0 -9
  216. data/examples/test-app/docs/api/curl/api/v1/users/show.sh +0 -9
  217. data/examples/test-app/docs/api/dataset.json +0 -2402
  218. data/examples/test-app/docs/api/postman/collection.json +0 -1290
  219. data/examples/test-app/generate.rb +0 -14
  220. data/examples/test-app/reqcord.yml +0 -28
  221. data/examples/test-app/test/integration/customers_test.rb +0 -72
  222. data/examples/test-app/test/integration/tasks_test.rb +0 -80
  223. data/examples/test-app/test/integration/users_test.rb +0 -72
@@ -1,117 +0,0 @@
1
- # Create Product
2
-
3
- `POST /api/v1/admin/products`
4
-
5
- Namespace: `api/v1/admin`
6
-
7
- ## Headers
8
-
9
- | Header | Value |
10
- | --- | --- |
11
- | X-Api-Key | `{{api_key}}` |
12
- | Content-Type | `application/json` |
13
- | Accept | `application/json` |
14
-
15
- ## Body Parameters
16
-
17
- | Field | Type | Required | Values |
18
- | --- | --- | --- | --- |
19
- | `product.sku` | string | yes | `"TEA-003"` |
20
- | `product.name` | string | yes | `"Jasmine"` |
21
- | `product.category` | string | yes | `"tea"` |
22
- | `product.price_cents` | integer | yes | `1400` |
23
-
24
- ## Example Request
25
-
26
- ```json
27
- {
28
- "product": {
29
- "sku": "TEA-003",
30
- "name": "Jasmine",
31
- "category": "tea",
32
- "price_cents": 1400
33
- }
34
- }
35
- ```
36
-
37
- ## cURL
38
-
39
- ```bash
40
- curl --request POST \
41
- --url "http://localhost:3000/api/v1/admin/products" \
42
- --header "X-Api-Key: {{api_key}}" \
43
- --header "Content-Type: application/json" \
44
- --header "Accept: application/json" \
45
- --data '{
46
- "product": {
47
- "sku": "TEA-003",
48
- "name": "Jasmine",
49
- "category": "tea",
50
- "price_cents": 1400
51
- }
52
- }'
53
- ```
54
-
55
- ## Responses
56
-
57
- ### 201 Created
58
-
59
- #### Fields
60
-
61
- | Field | Type | Required | Values |
62
- | --- | --- | --- | --- |
63
- | `id` | integer | yes | `5` |
64
- | `cost_cents` | integer | yes | `0` |
65
- | `tags` | array | yes | - |
66
- | `sku` | string | yes | `"TEA-003"` |
67
- | `name` | string | yes | `"Jasmine"` |
68
- | `category` | string | yes | `"tea"` |
69
- | `price_cents` | integer | yes | `1400` |
70
-
71
- ```json
72
- {
73
- "id": 5,
74
- "cost_cents": 0,
75
- "tags": [],
76
- "sku": "TEA-003",
77
- "name": "Jasmine",
78
- "category": "tea",
79
- "price_cents": 1400
80
- }
81
- ```
82
-
83
- ### 409 Conflict
84
-
85
- #### Fields
86
-
87
- | Field | Type | Required | Values |
88
- | --- | --- | --- | --- |
89
- | `error` | string | yes | `"sku TEA-001 already exists"` |
90
-
91
- ```json
92
- {
93
- "error": "sku TEA-001 already exists"
94
- }
95
- ```
96
-
97
- ### 422 Unprocessable Content
98
-
99
- #### Fields
100
-
101
- | Field | Type | Required | Values |
102
- | --- | --- | --- | --- |
103
- | `errors.sku[]` | string | yes | `"can't be blank"` |
104
-
105
- ```json
106
- {
107
- "errors": {
108
- "sku": [
109
- "can't be blank"
110
- ]
111
- }
112
- }
113
- ```
114
-
115
- ---
116
-
117
- Resource: [Products](index.md)
@@ -1,51 +0,0 @@
1
- # Delete Product
2
-
3
- `DELETE /api/v1/admin/products/:id`
4
-
5
- Namespace: `api/v1/admin`
6
-
7
- ## Headers
8
-
9
- | Header | Value |
10
- | --- | --- |
11
- | X-Api-Key | `{{api_key}}` |
12
- | Accept | `application/json` |
13
-
14
- ## Path Parameters
15
-
16
- | Field | Type | Required | Values |
17
- | --- | --- | --- | --- |
18
- | `id` | string | yes | `"4"` |
19
-
20
- ## cURL
21
-
22
- ```bash
23
- curl --request DELETE \
24
- --url "http://localhost:3000/api/v1/admin/products/4" \
25
- --header "X-Api-Key: {{api_key}}" \
26
- --header "Accept: application/json"
27
- ```
28
-
29
- ## Responses
30
-
31
- ### 204 No Content
32
-
33
- _No response body._
34
-
35
- ### 404 Not Found
36
-
37
- #### Fields
38
-
39
- | Field | Type | Required | Values |
40
- | --- | --- | --- | --- |
41
- | `error` | string | yes | `"Not Found"` |
42
-
43
- ```json
44
- {
45
- "error": "Not Found"
46
- }
47
- ```
48
-
49
- ---
50
-
51
- Resource: [Products](index.md)
@@ -1,11 +0,0 @@
1
- # Products
2
-
3
- Namespace: `api/v1/admin`
4
-
5
- API version: `v1`
6
-
7
- | Method | Path | Description |
8
- | --- | --- | --- |
9
- | `GET` | [`/api/v1/admin/products`](list.md) | List Products |
10
- | `POST` | [`/api/v1/admin/products`](create.md) | Create Product |
11
- | `DELETE` | [`/api/v1/admin/products/:id`](destroy.md) | Delete Product |
@@ -1,106 +0,0 @@
1
- # List Products
2
-
3
- `GET /api/v1/admin/products`
4
-
5
- Namespace: `api/v1/admin`
6
-
7
- ## Headers
8
-
9
- | Header | Value |
10
- | --- | --- |
11
- | X-Api-Key | `{{api_key}}` |
12
- | Accept | `application/json` |
13
-
14
- ## cURL
15
-
16
- ```bash
17
- curl --request GET \
18
- --url "http://localhost:3000/api/v1/admin/products" \
19
- --header "X-Api-Key: {{api_key}}" \
20
- --header "Accept: application/json"
21
- ```
22
-
23
- ## Responses
24
-
25
- ### 200 OK
26
-
27
- #### Fields
28
-
29
- | Field | Type | Required | Values |
30
- | --- | --- | --- | --- |
31
- | `[].id` | integer | yes | `4` |
32
- | `[].sku` | string | yes | `"MUG-002"` |
33
- | `[].name` | string | yes | `"Travel Mug"` |
34
- | `[].category` | string | yes | `"mugs"` |
35
- | `[].price_cents` | integer | yes | `3200` |
36
- | `[].cost_cents` | integer | yes | `1400` |
37
- | `[].tags[]` | string | yes | `"insulated"` |
38
-
39
- ```json
40
- [
41
- {
42
- "id": 1,
43
- "sku": "TEA-001",
44
- "name": "Earl Grey",
45
- "category": "tea",
46
- "price_cents": 1200,
47
- "cost_cents": 500,
48
- "tags": [
49
- "black",
50
- "bergamot"
51
- ]
52
- },
53
- {
54
- "id": 2,
55
- "sku": "TEA-002",
56
- "name": "Sencha",
57
- "category": "tea",
58
- "price_cents": 1500,
59
- "cost_cents": 700,
60
- "tags": [
61
- "green"
62
- ]
63
- },
64
- {
65
- "id": 3,
66
- "sku": "MUG-001",
67
- "name": "Stoneware Mug",
68
- "category": "mugs",
69
- "price_cents": 2400,
70
- "cost_cents": 900,
71
- "tags": [
72
- "ceramic"
73
- ]
74
- },
75
- {
76
- "id": 4,
77
- "sku": "MUG-002",
78
- "name": "Travel Mug",
79
- "category": "mugs",
80
- "price_cents": 3200,
81
- "cost_cents": 1400,
82
- "tags": [
83
- "steel",
84
- "insulated"
85
- ]
86
- }
87
- ]
88
- ```
89
-
90
- ### 401 Unauthorized
91
-
92
- #### Fields
93
-
94
- | Field | Type | Required | Values |
95
- | --- | --- | --- | --- |
96
- | `error` | string | yes | `"API key required"` |
97
-
98
- ```json
99
- {
100
- "error": "API key required"
101
- }
102
- ```
103
-
104
- ---
105
-
106
- Resource: [Products](index.md)
@@ -1,9 +0,0 @@
1
- # Auth
2
-
3
- Namespace: `api/v1`
4
-
5
- API version: `v1`
6
-
7
- | Method | Path | Description |
8
- | --- | --- | --- |
9
- | `POST` | [`/api/v1/auth/login`](login.md) | Login |
@@ -1,76 +0,0 @@
1
- # Login
2
-
3
- `POST /api/v1/auth/login`
4
-
5
- Namespace: `api/v1`
6
-
7
- ## Headers
8
-
9
- | Header | Value |
10
- | --- | --- |
11
- | Content-Type | `application/x-www-form-urlencoded` |
12
-
13
- ## Body Parameters
14
-
15
- | Field | Type | Required | Values |
16
- | --- | --- | --- | --- |
17
- | `email` | string | yes | `"ada@example.com"` |
18
- | `password` | string | yes | `"{{password}}"` |
19
-
20
- ## Example Request
21
-
22
- Sent as `application/x-www-form-urlencoded`; the cURL below carries it in that encoding.
23
-
24
- ```json
25
- {
26
- "email": "ada@example.com",
27
- "password": "{{password}}"
28
- }
29
- ```
30
-
31
- ## cURL
32
-
33
- ```bash
34
- curl --request POST \
35
- --url "http://localhost:3000/api/v1/auth/login" \
36
- --header "Content-Type: application/x-www-form-urlencoded" \
37
- --data 'email=ada%40example.com&password=%7B%7Bpassword%7D%7D'
38
- ```
39
-
40
- ## Responses
41
-
42
- ### 200 OK
43
-
44
- #### Fields
45
-
46
- | Field | Type | Required | Values |
47
- | --- | --- | --- | --- |
48
- | `token` | string | yes | `"{{token}}"` |
49
- | `token_type` | string | yes | `"Bearer"` |
50
- | `expires_in` | integer | yes | `3600` |
51
-
52
- ```json
53
- {
54
- "token": "{{token}}",
55
- "token_type": "Bearer",
56
- "expires_in": 3600
57
- }
58
- ```
59
-
60
- ### 401 Unauthorized
61
-
62
- #### Fields
63
-
64
- | Field | Type | Required | Values |
65
- | --- | --- | --- | --- |
66
- | `error` | string | yes | `"Invalid email or password"` |
67
-
68
- ```json
69
- {
70
- "error": "Invalid email or password"
71
- }
72
- ```
73
-
74
- ---
75
-
76
- Resource: [Auth](index.md)
@@ -1,91 +0,0 @@
1
- # Create Cart Item
2
-
3
- `POST /api/v1/cart/items`
4
-
5
- Namespace: `api/v1`
6
-
7
- ## Headers
8
-
9
- | Header | Value |
10
- | --- | --- |
11
- | Authorization | `Bearer {{token}}` |
12
- | Content-Type | `application/json` |
13
- | Accept | `application/json` |
14
-
15
- ## Body Parameters
16
-
17
- | Field | Type | Required | Values |
18
- | --- | --- | --- | --- |
19
- | `item.sku` | string | yes | `"TEA-002"` |
20
- | `item.quantity` | integer | yes | `3` |
21
-
22
- ## Example Request
23
-
24
- ```json
25
- {
26
- "item": {
27
- "sku": "TEA-002",
28
- "quantity": 3
29
- }
30
- }
31
- ```
32
-
33
- ## cURL
34
-
35
- ```bash
36
- curl --request POST \
37
- --url "http://localhost:3000/api/v1/cart/items" \
38
- --header "Authorization: Bearer {{token}}" \
39
- --header "Content-Type: application/json" \
40
- --header "Accept: application/json" \
41
- --data '{
42
- "item": {
43
- "sku": "TEA-002",
44
- "quantity": 3
45
- }
46
- }'
47
- ```
48
-
49
- ## Responses
50
-
51
- ### 201 Created
52
-
53
- #### Fields
54
-
55
- | Field | Type | Required | Values |
56
- | --- | --- | --- | --- |
57
- | `sku` | string | yes | `"TEA-002"` |
58
- | `name` | string | yes | `"Sencha"` |
59
- | `quantity` | integer | yes | `3` |
60
- | `unit_price_cents` | integer | yes | `1500` |
61
-
62
- ```json
63
- {
64
- "sku": "TEA-002",
65
- "name": "Sencha",
66
- "quantity": 3,
67
- "unit_price_cents": 1500
68
- }
69
- ```
70
-
71
- ### 422 Unprocessable Content
72
-
73
- #### Fields
74
-
75
- | Field | Type | Required | Values |
76
- | --- | --- | --- | --- |
77
- | `errors.sku[]` | string | yes | `"TEA-999 is not a known product"` |
78
-
79
- ```json
80
- {
81
- "errors": {
82
- "sku": [
83
- "TEA-999 is not a known product"
84
- ]
85
- }
86
- }
87
- ```
88
-
89
- ---
90
-
91
- Resource: [Cart Items](index.md)
@@ -1,51 +0,0 @@
1
- # Delete Cart Item
2
-
3
- `DELETE /api/v1/cart/items/:sku`
4
-
5
- Namespace: `api/v1`
6
-
7
- ## Headers
8
-
9
- | Header | Value |
10
- | --- | --- |
11
- | Authorization | `Bearer {{token}}` |
12
- | Accept | `application/json` |
13
-
14
- ## Path Parameters
15
-
16
- | Field | Type | Required | Values |
17
- | --- | --- | --- | --- |
18
- | `sku` | string | yes | `"TEA-001"` |
19
-
20
- ## cURL
21
-
22
- ```bash
23
- curl --request DELETE \
24
- --url "http://localhost:3000/api/v1/cart/items/TEA-001" \
25
- --header "Authorization: Bearer {{token}}" \
26
- --header "Accept: application/json"
27
- ```
28
-
29
- ## Responses
30
-
31
- ### 204 No Content
32
-
33
- _No response body._
34
-
35
- ### 404 Not Found
36
-
37
- #### Fields
38
-
39
- | Field | Type | Required | Values |
40
- | --- | --- | --- | --- |
41
- | `error` | string | yes | `"Not Found"` |
42
-
43
- ```json
44
- {
45
- "error": "Not Found"
46
- }
47
- ```
48
-
49
- ---
50
-
51
- Resource: [Cart Items](index.md)
@@ -1,10 +0,0 @@
1
- # Cart Items
2
-
3
- Namespace: `api/v1`
4
-
5
- API version: `v1`
6
-
7
- | Method | Path | Description |
8
- | --- | --- | --- |
9
- | `POST` | [`/api/v1/cart/items`](create.md) | Create Cart Item |
10
- | `DELETE` | [`/api/v1/cart/items/:sku`](destroy.md) | Delete Cart Item |
@@ -1,102 +0,0 @@
1
- # Checkout Cart
2
-
3
- `POST /api/v1/cart/checkout`
4
-
5
- Namespace: `api/v1`
6
-
7
- ## Headers
8
-
9
- | Header | Value |
10
- | --- | --- |
11
- | Authorization | `Bearer {{token}}` |
12
- | Content-Type | `application/json` |
13
- | Accept | `application/json` |
14
-
15
- ## Body Parameters
16
-
17
- | Field | Type | Required | Values |
18
- | --- | --- | --- | --- |
19
- | `payment_method` | string | yes | `"bank_transfer"` \| `"card"` |
20
-
21
- ## Example Request
22
-
23
- ```json
24
- {
25
- "payment_method": "card"
26
- }
27
- ```
28
-
29
- ## cURL
30
-
31
- ```bash
32
- curl --request POST \
33
- --url "http://localhost:3000/api/v1/cart/checkout" \
34
- --header "Authorization: Bearer {{token}}" \
35
- --header "Content-Type: application/json" \
36
- --header "Accept: application/json" \
37
- --data '{
38
- "payment_method": "card"
39
- }'
40
- ```
41
-
42
- ## Responses
43
-
44
- ### 201 Created
45
-
46
- #### Fields
47
-
48
- | Field | Type | Required | Values |
49
- | --- | --- | --- | --- |
50
- | `id` | integer | yes | `5` |
51
- | `status` | string | yes | `"pending"` |
52
- | `payment_method` | string | yes | `"bank_transfer"` \| `"card"` |
53
- | `total_cents` | integer | yes | `4800` |
54
- | `line_items[].sku` | string | yes | `"MUG-001"` |
55
- | `line_items[].name` | string | yes | `"Stoneware Mug"` |
56
- | `line_items[].quantity` | integer | yes | `1` |
57
- | `line_items[].unit_price_cents` | integer | yes | `2400` |
58
-
59
- ```json
60
- {
61
- "id": 5,
62
- "status": "pending",
63
- "payment_method": "card",
64
- "total_cents": 4800,
65
- "line_items": [
66
- {
67
- "sku": "TEA-001",
68
- "name": "Earl Grey",
69
- "quantity": 2,
70
- "unit_price_cents": 1200
71
- },
72
- {
73
- "sku": "MUG-001",
74
- "name": "Stoneware Mug",
75
- "quantity": 1,
76
- "unit_price_cents": 2400
77
- }
78
- ]
79
- }
80
- ```
81
-
82
- ### 422 Unprocessable Content
83
-
84
- #### Fields
85
-
86
- | Field | Type | Required | Values |
87
- | --- | --- | --- | --- |
88
- | `errors.payment_method[]` | string | yes | `"is not included in the list"` |
89
-
90
- ```json
91
- {
92
- "errors": {
93
- "payment_method": [
94
- "is not included in the list"
95
- ]
96
- }
97
- }
98
- ```
99
-
100
- ---
101
-
102
- Resource: [Carts](index.md)
@@ -1,10 +0,0 @@
1
- # Carts
2
-
3
- Namespace: `api/v1`
4
-
5
- API version: `v1`
6
-
7
- | Method | Path | Description |
8
- | --- | --- | --- |
9
- | `GET` | [`/api/v1/cart`](show.md) | Get Cart |
10
- | `POST` | [`/api/v1/cart/checkout`](checkout.md) | Checkout Cart |
@@ -1,73 +0,0 @@
1
- # Get Cart
2
-
3
- `GET /api/v1/cart`
4
-
5
- Namespace: `api/v1`
6
-
7
- ## Headers
8
-
9
- | Header | Value |
10
- | --- | --- |
11
- | Authorization | `Bearer {{token}}` |
12
- | Accept | `application/json` |
13
-
14
- ## cURL
15
-
16
- ```bash
17
- curl --request GET \
18
- --url "http://localhost:3000/api/v1/cart" \
19
- --header "Authorization: Bearer {{token}}" \
20
- --header "Accept: application/json"
21
- ```
22
-
23
- ## Responses
24
-
25
- ### 200 OK
26
-
27
- #### Fields
28
-
29
- | Field | Type | Required | Values |
30
- | --- | --- | --- | --- |
31
- | `items[].sku` | string | yes | `"MUG-001"` |
32
- | `items[].name` | string | yes | `"Stoneware Mug"` |
33
- | `items[].quantity` | integer | yes | `1` |
34
- | `items[].unit_price_cents` | integer | yes | `2400` |
35
- | `total_cents` | integer | yes | `4800` |
36
-
37
- ```json
38
- {
39
- "items": [
40
- {
41
- "sku": "TEA-001",
42
- "name": "Earl Grey",
43
- "quantity": 2,
44
- "unit_price_cents": 1200
45
- },
46
- {
47
- "sku": "MUG-001",
48
- "name": "Stoneware Mug",
49
- "quantity": 1,
50
- "unit_price_cents": 2400
51
- }
52
- ],
53
- "total_cents": 4800
54
- }
55
- ```
56
-
57
- ### 401 Unauthorized
58
-
59
- #### Fields
60
-
61
- | Field | Type | Required | Values |
62
- | --- | --- | --- | --- |
63
- | `error` | string | yes | `"Unauthorized"` |
64
-
65
- ```json
66
- {
67
- "error": "Unauthorized"
68
- }
69
- ```
70
-
71
- ---
72
-
73
- Resource: [Carts](index.md)