c83cd77411
Actual routes are: /borrowers Return a list of all borrowers in Koha /borrowers/{borrowernumber} Return the borrower identified by {borrowernumber} (eg. /borrowers/1) There is a test file you can run with: $ prove t/db_dependent/rest/borrowers.t All API stuff is in /api/v1 (except Perl modules) So we have: /api/v1/script.cgi CGI script /api/v1/swagger.json Swagger specification Change both OPAC and Intranet VirtualHosts to access the API, so we have: http://OPAC/api/v1/swagger.json Swagger specification http://OPAC/api/v1/{path} API endpoint http://INTRANET/api/v1/swagger.json Swagger specification http://INTRANET/api/v1/{path} API endpoint Add a (disabled) virtual host in Apache configuration api.HOSTNAME, so we have: http://api.HOSTNAME/api/v1/swagger.json Swagger specification http://api.HOSTNAME/api/v1/{path} API endpoint Add 'unblessed' subroutines to both Koha::Objects and Koha::Object to be able to pass it to Mojolicious Test plan: 1/ Install Perl modules Mojolicious and Swagger2 2/ perl Makefile.PL 3/ make && make install 4/ Change etc/koha-httpd.conf and copy it to the right place if needed 5/ Reload Apache 6/ Check that http://(OPAC|INTRANET)/api/v1/borrowers and http://(OPAC|INTRANET)/api/v1/borrowers/{borrowernumber} works Optionally, you could verify that http://(OPAC|INTRANET)/vX/borrowers (where X is an integer greater than 1) returns a 404 error Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
108 lines
2.4 KiB
JSON
108 lines
2.4 KiB
JSON
{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"title": "Koha REST API",
|
|
"version": "1",
|
|
"license": {
|
|
"name": "GPL v3",
|
|
"url": "http://www.gnu.org/licenses/gpl.txt"
|
|
},
|
|
"contact": {
|
|
"name": "Koha Team",
|
|
"url": "http://koha-community.org/"
|
|
}
|
|
},
|
|
"basePath": "/api/v1",
|
|
"paths": {
|
|
"/borrowers": {
|
|
"get": {
|
|
"x-mojo-controller": "Koha::REST::V1::Borrowers",
|
|
"operationId": "listBorrowers",
|
|
"tags": ["borrowers"],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "A list of borrowers",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/borrower"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/borrowers/{borrowernumber}": {
|
|
"get": {
|
|
"x-mojo-controller": "Koha::REST::V1::Borrowers",
|
|
"operationId": "getBorrower",
|
|
"tags": ["borrowers"],
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/parameters/borrowernumberPathParam"
|
|
}
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "A borrower",
|
|
"schema": {
|
|
"$ref": "#/definitions/borrower"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Borrower not found",
|
|
"schema": {
|
|
"$ref": "#/definitions/error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"borrower": {
|
|
"type": "object",
|
|
"properties": {
|
|
"borrowernumber": {
|
|
"$ref": "#/definitions/borrowernumber"
|
|
},
|
|
"cardnumber": {
|
|
"description": "library assigned ID number for borrowers"
|
|
},
|
|
"surname": {
|
|
"description": "borrower's last name"
|
|
},
|
|
"firstname": {
|
|
"description": "borrower's first name"
|
|
}
|
|
}
|
|
},
|
|
"borrowernumber": {
|
|
"description": "Borrower internal identifier"
|
|
},
|
|
"error": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"description": "Error message",
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"borrowernumberPathParam": {
|
|
"name": "borrowernumber",
|
|
"in": "path",
|
|
"description": "Internal borrower identifier",
|
|
"required": "true",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|