From 4f4cb688dbb60ad8d1d5fee7f1b898fb1716859f Mon Sep 17 00:00:00 2001 From: Andreas Huber <anh@fjd.de> Date: Mon, 18 May 2020 17:15:06 +0200 Subject: [PATCH] =?UTF-8?q?CR-3:=20Alle=20Vorkommen=20von=20"Source"=20in?= =?UTF-8?q?=20"Sender"=20=C3=A4ndern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FIT-Connect.postman_collection.json | 282 +----------------- .../FIT-Connect.postman_environment.json | 8 +- docs/2_Quick_Reference.md | 54 ++-- docs/5_Status-_und_Fehlercodes.md | 10 +- docs/Release Notes/Version_0.5.md | 6 + reference/sender.json | 60 ++-- 6 files changed, 85 insertions(+), 335 deletions(-) diff --git a/assets/postman/FIT-Connect.postman_collection.json b/assets/postman/FIT-Connect.postman_collection.json index 455e99d5..fdbccb16 100644 --- a/assets/postman/FIT-Connect.postman_collection.json +++ b/assets/postman/FIT-Connect.postman_collection.json @@ -31,10 +31,10 @@ "exec": [ "pm.test(\"response must be 200 and has a body\", function () {", " // assert that the status code is 200", - " pm.response.to.have.status(200); ", + " pm.response.to.have.status(200);", " // assert that the response has a valid JSON body", " pm.response.to.be.withBody;", - " pm.response.to.have.jsonBody(\"applicationId\"); ", + " pm.response.to.have.jsonBody(\"applicationId\");", "});", "", "// extract body", @@ -60,7 +60,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"additionalReferenceInfo\": {\n \"subject\": \"Anmeldung eines Gewerbes in Musterstadt\",\n \"caseId\": \"DF/8923\"\n },\n \"contentStructure\": {\n \"data\": {\n \"schema\": {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n },\n \"docs\": [\n {\n \"docId\": \"1\",\n \"purpose\": \"form\",\n \"size\": 13046,\n \"mimeType\": \"application/pdf\",\n \"filename\": \"test.pdf\",\n \"description\": \"Das Antragsformular\",\n \"lang\": {\n \"lang\": \"de\",\n \"region\": \"DE\"\n },\n \"hash\": {\n \"algorithm\": \"SHA-256\",\n \"digest\": \"bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9\"\n }\n }\n ]\n },\n \"publicServiceType\": {\n \"name\": \"Gewerbeanmeldung\",\n \"description\": \"Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.\",\n \"leikaId\": \"99050012104000\",\n \"otherIdentifiers\": [\n {\n \"id\": \"8664844\",\n \"schemeID\": \"service.niedersachsen.de\",\n \"schemeName\": \"Serviceportal Niedersachsen\"\n },\n {\n \"id\": \"354824\",\n \"schemeID\": \"buerger.thueringen.de\",\n \"schemeName\": \"Zuständigkeitsfinder Thüringen\"\n }\n ]\n },\n \"applicants\": [\n {\n \"authentificationInfo\": {\n \"assuranceLevel\": \"high\",\n \"authentificationMethod\": \"eID\",\n \"timestamp\": \"2020-03-03T12:38:23Z\"\n },\n \"identityInfo\": {\n \"dateOfBirth\": \"1970-09-13\",\n \"gender\": \"m\",\n \"givenName\": \"WERNER\",\n \"familyName\": \"MUSTERMANN\",\n \"placeOfResidence\": {\n \"street\": \"KURZER WEG 7\",\n \"postalCode\": \"12345\",\n \"city\": \"ANKH-MORPORK\"\n }\n },\n \"contactInfo\": {\n \"electronicAdresses\": [\n {\n \"channelType\": \"Service-Account-Mailbox\",\n \"address\": \"3b0c9c8c-0801-45f0-a331-2abfc9db78d0\"\n }\n ],\n \"physicalAdress\": {\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"telephone\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ]\n }\n }\n ],\n \"paymentInfo\": {\n \"reference\": \"TP/93/GDP\",\n \"usage\": \"Gewerbeanmeldung\",\n \"amount\": 17.3,\n \"timestamp\": \"2020-03-03T12:38:23Z\",\n \"status\": \"success\",\n \"transaction\": \"1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82\"\n }\n}", + "raw": "{\n \"additionalReferenceInfo\": {\n \"subject\": \"Anmeldung eines Gewerbes in Musterstadt\",\n \"caseId\": \"DF/8923\"\n },\n \"contentStructure\": {\n \"data\": {\n \"schema\": {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n },\n \"docs\": [\n {\n \"docId\": \"1\",\n \"purpose\": \"form\",\n \"size\": 13046,\n \"mimeType\": \"application/pdf\",\n \"filename\": \"test.pdf\",\n \"description\": \"Das Antragsformular\",\n \"lang\": {\n \"lang\": \"de\",\n \"region\": \"DE\"\n },\n \"hash\": {\n \"algorithm\": \"SHA-256\",\n \"digest\": \"bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9\"\n }\n }\n ]\n },\n \"publicServiceType\": {\n \"name\": \"Gewerbeanmeldung\",\n \"description\": \"Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.\",\n \"leikaId\": \"99050012104000\",\n \"otherIdentifiers\": [\n {\n \"id\": \"8664844\",\n \"schemeID\": \"service.niedersachsen.de\",\n \"schemeName\": \"Serviceportal Niedersachsen\"\n },\n {\n \"id\": \"354824\",\n \"schemeID\": \"buerger.thueringen.de\",\n \"schemeName\": \"Zuständigkeitsfinder Thüringen\"\n }\n ]\n },\n \"applicants\": [\n {\n \t\"type\": \"person\",\n \"authentificationInfo\": {\n \"assuranceLevel\": \"high\",\n \"authentificationMethod\": \"eID\",\n \"timestamp\": \"2020-03-03T12:38:23Z\"\n },\n \"identityInfo\": {\n \"dateOfBirth\": \"1970-09-13\",\n \"gender\": \"m\",\n \"givenName\": \"WERNER\",\n \"familyName\": \"MUSTERMANN\",\n \"placeOfResidence\": {\n \t\"type\": \"national\",\n \"street\": \"KURZER WEG 7\",\n \"postalCode\": \"12345\",\n \"city\": \"ANKH-MORPORK\"\n }\n },\n \"contactInfo\": {\n \"electronicAdresses\": [\n {\n \"channelType\": \"Service-Account-Mailbox\",\n \"address\": \"3b0c9c8c-0801-45f0-a331-2abfc9db78d0\"\n }\n ],\n \"physicalAdress\": {\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"telephone\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": true,\n \"description\": \"work\"\n }\n ]\n }\n }\n ],\n \"paymentInfo\": {\n \"reference\": \"TP/93/GDP\",\n \"usage\": \"Gewerbeanmeldung\",\n \"amount\": 17.3,\n \"timestamp\": \"2020-03-03T12:38:23Z\",\n \"status\": \"success\",\n \"transaction\": \"1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82\"\n }\n}", "options": { "raw": { "language": "json" @@ -77,73 +77,7 @@ ] } }, - "response": [ - { - "name": "Create Application", - "originalRequest": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "name": "Content-Type", - "value": "application/json", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"additional-reference-info\": {\n \"subject\": \"Anmeldung eines Gewerbes in Musterstadt\",\n \"case-id\": \"DF/8923\"\n },\n \"content-structure\": {\n \"data\": {\n \"schema\": {\n \"mime-type\": \"json\",\n \"schema-source\": \"none\"\n },\n \"mime-type\": \"json\"\n },\n \"docs\": [\n {\n \"doc-id\": \"1\",\n \"purpose\": \"form\",\n \"size\": 39273,\n \"mime\": \"application/pdf\",\n \"filename\": \"antrag.pdf\",\n \"description\": \"Das Antragsformular\",\n \"lang\": {\n \"lang\": \"de\",\n \"region\": \"DE\"\n },\n \"hash\": {\n \"algorithm\": \"SHA-256\",\n \"digest\": \"03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340\"\n }\n }\n ]\n },\n \"public-service-type\": {\n \"name\": \"Gewerbeanmeldung\",\n \"description\": \"Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.\",\n \"leika-id\": \"99050012104000\",\n \"other-identifiers\": [\n {\n \"id\": \"8664844\",\n \"schemeURI\": \"service.niedersachsen.de\",\n \"schemeName\": \"Serviceportal Niedersachsen\"\n },\n {\n \"id\": \"354824\",\n \"schemeURI\": \"buerger.thueringen.de\",\n \"schemeName\": \"Zuständigkeitsfinder Thüringen\"\n }\n ]\n },\n \"applicants\": [\n {\n \"authentification-info\": {\n \"assurance-level\": \"high\",\n \"authentification-method\": \"eID\",\n \"timestamp\": \"2020-03-03T12:38:23Z\"\n },\n \"identity-info\": {\n \"date-of-birth\": \"1970-09-13\",\n \"gender\": \"m\",\n \"given-name\": \"WERNER\",\n \"family-name\": \"MUSTERMANN\",\n \"place-of-residence\": {\n \"street\": \"KURZER WEG 7\",\n \"postal-code\": \"12345\",\n \"city\": \"ANKH-MORPORK\"\n }\n },\n \"contact-info\": {\n \"electronic-adresses\": [\n {\n \"channel-type\": \"Service-Account-Mailbox\",\n \"address\": \"3b0c9c8c-0801-45f0-a331-2abfc9db78d0\"\n }\n ],\n \"physical-adress\": {\n \"street\": \"Kurzer Weg\",\n \"house-number\": \"7\",\n \"postal-code\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"telephone\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": true,\n \"type\": \"work\"\n }\n ]\n }\n }\n ],\n \"payment-info\": {\n \"reference\": \"TP/93/GDP\",\n \"usage\": \"Gewerbeanmeldung\",\n \"amount\": 17.3,\n \"timestamp\": \"2020-03-03T12:38:23Z\",\n \"status\": \"success\",\n \"transaction\": \"1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{url}}{{port}}/sender/{{source_id}}/{{destination_id}}", - "host": [ - "{{url}}{{port}}" - ], - "path": [ - "sender", - "{{source_id}}", - "{{destination_id}}" - ] - } - }, - "status": "200", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Tue, 31 Mar 2020 06:05:59 GMT" - }, - { - "key": "Server", - "value": "Apache/2.4.38 (Debian)" - }, - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Keep-Alive", - "value": "timeout=5, max=100" - }, - { - "key": "Connection", - "value": "Keep-Alive" - }, - { - "key": "Transfer-Encoding", - "value": "chunked" - } - ], - "cookie": [], - "body": "{\n \"application-id\": \"45bb5b95-d853-4fc5-b45d-10aa9e15287a\"\n}" - } - ] + "response": [] }, { "name": "Add Applicaiton Data", @@ -205,7 +139,7 @@ "exec": [ "pm.test(\"response must be 202 Accepted and without body\", function () {", " // assert that the status code is 200", - " pm.response.to.have.status(202); ", + " pm.response.to.have.status(202);", "});" ], "type": "text/javascript" @@ -213,19 +147,11 @@ } ], "protocolProfileBehavior": { - "disabledSystemHeaders": { - "content-type": true - } + "disabledSystemHeaders": {} }, "request": { "method": "PUT", "header": [ - { - "key": "Content-Type", - "name": "Content-Type", - "value": "application/pdf", - "type": "text" - }, { "key": "file", "value": "", @@ -321,35 +247,16 @@ "exec": [ "pm.test(\"response must be 202 Accepted and without body\", function () {", " // assert that the status code is 200", - " pm.response.to.have.status(202); ", + " pm.response.to.have.status(202);", "});" ], "type": "text/javascript" } } ], - "protocolProfileBehavior": { - "disableBodyPruning": true - }, "request": { "method": "GET", - "header": [ - { - "key": "Content-Type", - "name": "Content-Type", - "type": "text", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"F99000001\": \"string\",\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 42\n },\n \"G99000002\": [\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 17\n }\n },\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 24\n }\n }\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, + "header": [], "url": { "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}/{{application_id}}/upload-status", "host": [ @@ -381,28 +288,9 @@ } } ], - "protocolProfileBehavior": { - "disableBodyPruning": true - }, "request": { "method": "GET", - "header": [ - { - "key": "Content-Type", - "name": "Content-Type", - "type": "text", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"F99000001\": \"string\",\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 42\n },\n \"G99000002\": [\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 17\n }\n },\n {\n \"F99000004\": true,\n \"G99000001\": {\n \"F99000002\": \"string\",\n \"F99000003\": 24\n }\n }\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, + "header": [], "url": { "raw": "{{sender_url}}{{sender_id}}/{{destination_id}}", "host": [ @@ -512,7 +400,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephone\": [\n \t{\n \t\"number\": \"+49 89 32168-0\",\n \t\"mobile\": false,\n \t\"description\": \"work\"\n \t}\n ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n \t{\n\t \"formOfAddress\": \"Herr\",\n\t \"academicTitle\": \"Dr.\",\n\t \"firstName\": \"Kunibert\",\n\t \"lastName\": \"Vonundzu\",\n\t \"contact\": {\n\t \"telephone\": [\n\t {\n\t \"number\": \"+49 89 32168-42\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t },\n\t {\n\t \"number\": \"+49 123 456789\",\n\t \"mobile\": true,\n\t \"description\": \"work\"\n\t }\n\t ],\n\t \"email\": \"kunibert.vonundzu@example.com\"\n\t }\n \t}\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n }\n}", + "raw": "{\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \t\"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephone\": [\n \t{\n \t\"number\": \"+49 89 32168-0\",\n \t\"mobile\": false,\n \t\"description\": \"work\"\n \t}\n ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n \t{\n\t \"formOfAddress\": \"Herr\",\n\t \"academicTitle\": \"Dr.\",\n\t \"firstName\": \"Kunibert\",\n\t \"lastName\": \"Vonundzu\",\n\t \"contact\": {\n\t \"telephone\": [\n\t {\n\t \"number\": \"+49 89 32168-42\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t },\n\t {\n\t \"number\": \"+49 123 456789\",\n\t \"mobile\": true,\n\t \"description\": \"work\"\n\t }\n\t ],\n\t \"email\": \"kunibert.vonundzu@example.com\"\n\t }\n \t}\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n }\n}", "options": { "raw": { "language": "json" @@ -529,66 +417,7 @@ ] } }, - "response": [ - { - "name": "Create destination", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"public-organization\": {\n \"organization-name\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \"street\": \"Kurzer Weg\",\n \"houseNr\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephone\": {\n \"number\": \"+49 89 32168-0\",\n \"mobile\": false,\n \"type\": \"work\"\n },\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technical-contact\": {\n \"formOfAddress\": \"Herr\",\n \"academicTitle\": \"Dr.\",\n \"firstName\": \"Kunibert\",\n \"lastName\": \"Vonundzu\",\n \"contact\": {\n \"telephone\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": false,\n \"type\": \"work\"\n },\n {\n \"number\": \"+49 123 456789\",\n \"mobile\": true,\n \"type\": \"work\"\n }\n ],\n \"email\": \"kunibert.vonundzu@example.com\"\n }\n },\n \"schemas\": [\n {\n \"mime-type\": \"json\",\n \"schema-source\": \"none\"\n }\n ],\n \"callback\": {\n \"callback-url\": \"https://www.example.com/callback\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{url}}{{port}}/subscriber/{{subscriber_id}}/destinations", - "host": [ - "{{url}}{{port}}" - ], - "path": [ - "subscriber", - "{{subscriber_id}}", - "destinations" - ] - } - }, - "status": "200", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Tue, 31 Mar 2020 05:36:26 GMT" - }, - { - "key": "Server", - "value": "Apache/2.4.38 (Debian)" - }, - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Keep-Alive", - "value": "timeout=5, max=100" - }, - { - "key": "Connection", - "value": "Keep-Alive" - }, - { - "key": "Transfer-Encoding", - "value": "chunked" - } - ], - "cookie": [], - "body": "{\n \"destination-id\": \"e15fc92e-c286-424b-9802-39c6b6bc441d\"\n}" - } - ] + "response": [] }, { "name": "Get Destination", @@ -640,7 +469,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"destinationId\": \"{{destination_id}}\",\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Ankh-Morpork\",\n \"address\": {\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephone\": [\n \t{\n\t \"number\": \"+49 89 32168-0\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t }\n\t ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n \t{\n\t \"formOfAddress\": \"Herr\",\n\t \"academicTitle\": \"Dr.\",\n\t \"firstName\": \"Kunibert\",\n\t \"lastName\": \"Vonundzu\",\n\t \"contact\": {\n\t \"telephone\": [\n\t {\n\t \"number\": \"+49 89 32168-42\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t },\n\t {\n\t \"number\": \"+49 123 456789\",\n\t \"mobile\": true,\n\t \"description\": \"work\"\n\t }\n\t ],\n\t \"email\": \"kunibert.vonundzu@example.com\"\n\t }\n \t}\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n }\n}", + "raw": "{\n \"destinationId\": \"{{destination_id}}\",\n \"publicOrganization\": {\n \"organizationName\": \"Gewerbeamt Ankh-Morpork\",\n \"address\": {\n \t\"type\": \"national\",\n \"street\": \"Kurzer Weg\",\n \"houseNumber\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephone\": [\n \t{\n\t \"number\": \"+49 89 32168-0\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t }\n\t ],\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technicalContact\": [\n \t{\n\t \"formOfAddress\": \"Herr\",\n\t \"academicTitle\": \"Dr.\",\n\t \"firstName\": \"Kunibert\",\n\t \"lastName\": \"Vonundzu\",\n\t \"contact\": {\n\t \"telephone\": [\n\t {\n\t \"number\": \"+49 89 32168-42\",\n\t \"mobile\": false,\n\t \"description\": \"work\"\n\t },\n\t {\n\t \"number\": \"+49 123 456789\",\n\t \"mobile\": true,\n\t \"description\": \"work\"\n\t }\n\t ],\n\t \"email\": \"kunibert.vonundzu@example.com\"\n\t }\n \t}\n ],\n \"schemas\": [\n {\n \"mimeType\": \"json\",\n \"schemaSource\": \"none\"\n }\n ],\n \"callback\": {\n \"callbackURI\": \"http://127.0.0.1:4010/voluptas\"\n }\n}", "options": { "raw": { "language": "json" @@ -658,66 +487,7 @@ ] } }, - "response": [ - { - "name": "Create destination", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"public-organization\": {\n \"organization-name\": \"Gewerbeamt Musterstadt\",\n \"address\": {\n \"street\": \"Kurzer Weg\",\n \"houseNr\": \"7\",\n \"postalCode\": \"12345\",\n \"city\": \"Ankh-Morpork\"\n },\n \"contact\": {\n \"telephone\": {\n \"number\": \"+49 89 32168-0\",\n \"mobile\": false,\n \"type\": \"work\"\n },\n \"email\": \"behoerde@example.com\"\n }\n },\n \"technical-contact\": {\n \"formOfAddress\": \"Herr\",\n \"academicTitle\": \"Dr.\",\n \"firstName\": \"Kunibert\",\n \"lastName\": \"Vonundzu\",\n \"contact\": {\n \"telephone\": [\n {\n \"number\": \"+49 89 32168-42\",\n \"mobile\": false,\n \"type\": \"work\"\n },\n {\n \"number\": \"+49 123 456789\",\n \"mobile\": true,\n \"type\": \"work\"\n }\n ],\n \"email\": \"kunibert.vonundzu@example.com\"\n }\n },\n \"schemas\": [\n {\n \"mime-type\": \"json\",\n \"schema-source\": \"none\"\n }\n ],\n \"callback\": {\n \"callback-url\": \"https://www.example.com/callback\"\n }\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{url}}{{port}}/subscriber/{{subscriber_id}}/destinations", - "host": [ - "{{url}}{{port}}" - ], - "path": [ - "subscriber", - "{{subscriber_id}}", - "destinations" - ] - } - }, - "status": "200", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Tue, 31 Mar 2020 05:36:26 GMT" - }, - { - "key": "Server", - "value": "Apache/2.4.38 (Debian)" - }, - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Keep-Alive", - "value": "timeout=5, max=100" - }, - { - "key": "Connection", - "value": "Keep-Alive" - }, - { - "key": "Transfer-Encoding", - "value": "chunked" - } - ], - "cookie": [], - "body": "{\n \"destination-id\": \"e15fc92e-c286-424b-9802-39c6b6bc441d\"\n}" - } - ] + "response": [] }, { "name": "Delete Destination", @@ -1047,34 +817,10 @@ ], "variable": [ { - "id": "b4789184-d9f2-40e2-97aa-a61859b4004f", - "key": "source_id", - "value": "source-id", - "type": "string" - }, - { - "id": "c529614f-c3a5-41dd-904f-1d7543ff07db", - "key": "destination_id", - "value": "destination-id", - "type": "string" - }, - { - "id": "a9fd8e0c-8a83-49b5-9eb7-cdd411b51705", - "key": "application_id", - "value": "", - "type": "string" - }, - { - "id": "6d917e40-6b8a-4731-a6bf-63ea6ba2ccdf", + "id": "59b68b48-44c4-429f-afc6-6cf45926554f", "key": "doc_id", "value": "1", "type": "string" - }, - { - "id": "f486faaa-522c-4ca2-80d7-2083f22925fa", - "key": "subscriber_id", - "value": "subscriber-id", - "type": "string" } ], "protocolProfileBehavior": {} diff --git a/assets/postman/FIT-Connect.postman_environment.json b/assets/postman/FIT-Connect.postman_environment.json index 89140253..398e238d 100644 --- a/assets/postman/FIT-Connect.postman_environment.json +++ b/assets/postman/FIT-Connect.postman_environment.json @@ -1,6 +1,6 @@ { "id": "44204631-99ff-4de7-92e1-76fc41b2b798", - "name": "FIT-Connect Test", + "name": "FIT-Connect", "values": [ { "key": "sender_url", @@ -14,16 +14,16 @@ }, { "key": "sender_id", - "value": "sender-nobody", + "value": "sender-c94ae37e-dcc5-345e-a530-8651bdfa5f2c", "enabled": true }, { "key": "subscriber_id", - "value": "subscriber-nobody", + "value": "subscriber-c94ae37e-dcc5-345e-a530-8651bdfa5f2c", "enabled": true } ], "_postman_variable_scope": "environment", - "_postman_exported_at": "2020-05-18T08:59:33.107Z", + "_postman_exported_at": "2020-05-18T14:18:19.182Z", "_postman_exported_using": "Postman/7.24.0" } \ No newline at end of file diff --git a/docs/2_Quick_Reference.md b/docs/2_Quick_Reference.md index 0f1ec258..8265cd81 100644 --- a/docs/2_Quick_Reference.md +++ b/docs/2_Quick_Reference.md @@ -17,50 +17,50 @@ Anhänge können entweder klassische Anhänge (bspw. Nachweise) oder oder eine P Um Ressourcen eindeutig zu identifizieren, werden in den URLs der REST Endpunkte eine oder mehrere Identifikatoren (IDs) benutzt. ### Von der API bereitgestellte IDs -#### application-id -Der Zustelldienst weist jedem übertragenen Antrag (`application`) eine global eindeutige `application-id` zu, die diesen Antrag dauerhaft über den gesamten Bearbeitungsverlauf eindeutig identifiziert. +#### applicationId +Der Zustelldienst weist jedem übertragenen Antrag (`application`) eine global eindeutige `applicationId` zu, die diesen Antrag dauerhaft über den gesamten Bearbeitungsverlauf eindeutig identifiziert. -#### destination-id -Die `destination-id` ist eine vom Zustelldienst vergebene ID für einen durch den Subscriber angelegten Zustellpunkt (`destination`). Diese ID wird dem Sender über externe Systeme (bspw. Zuständigkeitsfinder) oder bilaterale Absprachen zwischen beiden Seiten mitgeteilt. +#### destinationId +Die `destinationId` ist eine vom Zustelldienst vergebene ID für einen durch den Subscriber angelegten Zustellpunkt (`destination`). Diese ID wird dem Sender über externe Systeme (bspw. Zuständigkeitsfinder) oder bilaterale Absprachen zwischen beiden Seiten mitgeteilt. ### Vom API-Portal bereitgestellte IDs -#### source-id -Die `source-id` ist die ID des Accounts, der die Übertragung absendet. Sie wird vom genutzten Identitätssystem vergeben und muss global eindeutig sein. +#### senderId +Die `senderId` ist die ID des Accounts, der die Übertragung absendet. Sie wird vom genutzten Identitätssystem vergeben und muss global eindeutig sein. -#### subscriber-id -Die `subscriber-id` ist die ID des Accounts, der die Übertragung empfängt. Sie wird vom genutzten Identitätssystem vergeben und muss global eindeutig sein. +#### subscriberId +Die `subscriberId` ist die ID des Accounts, der die Übertragung empfängt. Sie wird vom genutzten Identitätssystem vergeben und muss global eindeutig sein. ### Vom Sender vergebene Identifikatoren -#### doc-id -Der Sender vergibt für jedes Antragsformular und jede Anlage in einer Übertragung eine `doc-id`. Diese muss für alle Dokumente (PDF-Antragsformulare und beliebige Anlagen) in der Übertragung eindeutig sein. Es wird empfohlen, die IDs `1`, `2` etc. zu verwenden. +#### docId +Der Sender vergibt für jedes Antragsformular und jede Anlage in einer Übertragung eine `docId`. Diese muss für alle Dokumente (PDF-Antragsformulare und beliebige Anlagen) in der Übertragung eindeutig sein. Es wird empfohlen, die IDs `1`, `2` etc. zu verwenden. ## Operation der Application Sender API Mit folgenden Operationen kann der Sender eine Application übertragen und die Übertragung verwalten: -- [Create Application](../reference/sender.json/paths/~1{source-id}~1{destination-id}/post) - Legt eine neue Übertragung durch Übermittlung der Metadaten an. -- [Add Application Data](../reference/sender.json/paths/~1{source-id}~1{destination-id}~1{application-id}~1data/put) - Fügt dem Antrag strukturierte Daten (Fachdaten) hinzu. -- [Add Application Document](../reference/sender.json/paths/~1{source-id}~1{destination-id}~1{application-id}~1docs~1{doc-id}/put) - Übermittelt ein Antragsformular oder eine Anlage. -- [Send Application](../reference/sender.json/paths/~1{source-id}~1{destination-id}~1{application-id}/post) - Beendet die Übertragung des Antrags und löst seinen Versand aus. -- [Get Application Upload Status](../reference/sender.json/paths/~1{source-id}~1{destination-id}~1{application-id}~1upload-status/get) - Ruft den Status der Uploads der Teile der Übertragung ab. Für die Fachdaten und Dokumente wird jeweils der Status und die auf dem Server vorliegende Länge in Bytes zurückgegegben. +- [Create Application](../reference/sender.json/paths/~1{senderId}~1{destinationId}/post) - Legt eine neue Übertragung durch Übermittlung der Metadaten an. +- [Add Application Data](../reference/sender.json/paths/~1{senderId}~1{destinationId}~1{applicationId}~1data/put) - Fügt dem Antrag strukturierte Daten (Fachdaten) hinzu. +- [Add Application Document](../reference/sender.json/paths/~1{senderId}~1{destinationId}~1{applicationId}~1docs~1{docId}/put) - Übermittelt ein Antragsformular oder eine Anlage. +- [Send Application](../reference/sender.json/paths/~1{senderId}~1{destinationId}~1{applicationId}/post) - Beendet die Übertragung des Antrags und löst seinen Versand aus. +- [Get Application Upload Status](../reference/sender.json/paths/~1{senderId}~1{destinationId}~1{applicationId}~1upload-status/get) - Ruft den Status der Uploads der Teile der Übertragung ab. Für die Fachdaten und Dokumente wird jeweils der Status und die auf dem Server vorliegende Länge in Bytes zurückgegegben. Darüber hinaus stehen dem Sender folgende weitere Operationen zur Verfügung: -- [Get Destination](../reference/sender.json/paths/~1{source-id}~1{destination-id}/get) - Ruft übertragungsrelevante Informationen über den Zustellpunkt (bspw. zulässige Schemata oder Datentypen) ab. -- [Get Status](../reference/sender.json/paths/~1{source-id}~1{application-id}~1status/get) - Ruft den Status sowie die Statushistorie der Zustellung des Antrags ab. +- [Get Destination Info](../reference/sender.json/paths/~1{senderId}~1{destinationId}/get) - Ruft übertragungsrelevante Informationen über den Zustellpunkt (bspw. zulässige Schemata oder Datentypen) ab. +- [Get Status](../reference/sender.json/paths/~1{senderId}~1{applicationId}~1status/get) - Ruft den Status sowie die Statushistorie der Zustellung des Antrags ab. ## Operation der Application Subscriber API Mit diesen Operationen kann der Subscriber eine oder mehrere Zustellpunkte (`Destinations`) verwalten: -- [Create Destination](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations/post) - Legt ein neues Übertragungsziel (Destination) an. -- [List Destinations](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations/get) - Listet alle Übertragungsziele (Destinations) eines Subscribers auf. -- [Get Destination](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations~1{destination-id}/get) - Ruf die Daten eines Übertragungsziels (Destination) ab. -- [Update Destination](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations~1{destination-id}/put) - Aktualisiert ein Übertragungsziel (Destination). -- [Delete Destination](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations~1{destination-id}/delete) - Löscht ein Übertragungsziel (Destination). +- [Create Destination](../reference/subscriber.json/paths/~1{subscriberId}~1destinations/post) - Legt ein neues Übertragungsziel (Destination) an. +- [List Destinations](../reference/subscriber.json/paths/~1{subscriberId}~1destinations/get) - Listet alle Übertragungsziele (Destinations) eines Subscribers auf. +- [Get Destination](../reference/subscriber.json/paths/~1{subscriberId}~1destinations~1{destinationId}/get) - Ruf die Daten eines Übertragungsziels (Destination) ab. +- [Update Destination](../reference/subscriber.json/paths/~1{subscriberId}~1destinations~1{destinationId}/put) - Aktualisiert ein Übertragungsziel (Destination). +- [Delete Destination](../reference/subscriber.json/paths/~1{subscriberId}~1destinations~1{destinationId}/delete) - Löscht ein Übertragungsziel (Destination). Mit diesen Operationen wird nach wartenden Applications gesucht und diese abgeholt: -- [List Applications](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations~1{destination-id}~1applications/get) - Ruft die Liste der wartenden Übertragungen (Applications) ab. -- [Get Application](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations~1{destination-id}~1applications~1{application-id}/get) - Ruft eine wartende Übertragung (Application) ab. -- [Get Application Data](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations~1{destination-id}~1applications~1{application-id}~1application-data/get) - Ruft die Fachdaten einer Übertragung (Application Data) ab. -- [Get Application Document](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations~1{destination-id}~1applications~1{application-id}~1docs~1{doc-id}/get) - Ruf ein Dokument (Formular oder Anlage) der Application ab. -- [Acknowledge Application](../reference/subscriber.json/paths/~1{subscriber-id}~1destinations~1{destination-id}~1applications~1{application-id}/post) - Quittiert die Abholung der Übertragung. +- [List Applications](../reference/subscriber.json/paths/~1{subscriberId}~1destinations~1{destinationId}~1applications/get) - Ruft die Liste der wartenden Übertragungen (Applications) ab. +- [Get Application Metadata](../reference/subscriber.json/paths/~1{subscriberId}~1destinations~1{destinationId}~1applications~1{applicationId}/get) - Ruft eine wartende Übertragung (Application) ab. +- [Get Application Data](../reference/subscriber.json/paths/~1{subscriberId}~1destinations~1{destinationId}~1applications~1{applicationId}~1data/get) - Ruft die Fachdaten einer Übertragung (Application Data) ab. +- [Get Application Document](../reference/subscriber.json/paths/~1{subscriberId}~1destinations~1{destinationId}~1applications~1{applicationId}~1docs~1{docId}/get) - Ruf ein Dokument (Formular oder Anlage) der Application ab. +- [Acknowledge Application](../reference/subscriber.json/paths/~1{subscriberId}~1destinations~1{destinationId}~1applications~1{applicationId}/post) - Quittiert die Abholung der Übertragung. diff --git a/docs/5_Status-_und_Fehlercodes.md b/docs/5_Status-_und_Fehlercodes.md index e79a8300..6b3b775d 100644 --- a/docs/5_Status-_und_Fehlercodes.md +++ b/docs/5_Status-_und_Fehlercodes.md @@ -34,12 +34,10 @@ Bei durch den API-Client verursachte Fehler (HTTP Statusklasse 4XX), liefert die Eine Error Mitteilung enthält folgende Angaben: - code: Standardisierter Fehlercode - - msg: Textuelle Fehlermeldung - - ref: Referenz auf fehlerhafte Stelle +- `code`: Standardisierter Fehlercode +- `msg`: Textuelle Fehlermeldung +- `ref`: Referenz auf fehlerhafte Stelle ### Liste der Fehlercodes -**... Noch in der Erstellung ...** \ No newline at end of file +**... Noch in der Erstellung ...** diff --git a/docs/Release Notes/Version_0.5.md b/docs/Release Notes/Version_0.5.md index 8e6309ab..3cfef478 100644 --- a/docs/Release Notes/Version_0.5.md +++ b/docs/Release Notes/Version_0.5.md @@ -19,6 +19,12 @@ Die Basis-URLs für diese Version sind: - models/common/individual.json - models/destination-no-id.json +### CR-3: Source in Sender ändern +In der Dokumentation werden die Begriffe "Source" und "Sender" synonym verwendet. Um die Dokumentation klarer zu machen, wurden alle Vorkommen von "Source" in "Sender" geändert. + +<!-- theme: warning --> +> **Hinweis:** Dies wirkt sich auch auf die OAuth-Scopes aus. Der Scope `{senderId}:source:manage` wurde in `{senderId}:sender:manage` geändert. + ### CR-5: Zusätzliche Properties verbieten Wo möglich wurde `"additionalProperties": false` gesetzt um weitere Properties zu verbieten. diff --git a/reference/sender.json b/reference/sender.json index 3ef181b0..67f67b99 100644 --- a/reference/sender.json +++ b/reference/sender.json @@ -20,13 +20,13 @@ } ], "paths": { - "/{sourceId}/{destinationId}/{applicationId}": { + "/{senderId}/{destinationId}/{applicationId}": { "parameters": [ { "schema": { "type": "string" }, - "name": "sourceId", + "name": "senderId", "in": "path", "required": true }, @@ -131,20 +131,20 @@ "security": [ { "OAuth 2.0": [ - "{sourceId}:application:apply", - "{sourceId}:source:manage" + "{senderId}:application:apply", + "{senderId}:sender:manage" ] } ] } }, - "/{sourceId}/{destinationId}": { + "/{senderId}/{destinationId}": { "parameters": [ { "schema": { "type": "string" }, - "name": "sourceId", + "name": "senderId", "in": "path", "required": true }, @@ -387,8 +387,8 @@ "security": [ { "OAuth 2.0": [ - "{sourceId}:application:apply", - "{sourceId}:source:manage" + "{senderId}:application:apply", + "{senderId}:sender:manage" ] } ] @@ -455,20 +455,20 @@ "security": [ { "OAuth 2.0": [ - "{sourceId}:destination-info:read", - "{sourceId}:source:manage" + "{senderId}:destination-info:read", + "{senderId}:sender:manage" ] } ] } }, - "/{sourceId}/{destinationId}/{applicationId}/docs/{docId}": { + "/{senderId}/{destinationId}/{applicationId}/docs/{docId}": { "parameters": [ { "schema": { "type": "string" }, - "name": "sourceId", + "name": "senderId", "in": "path", "required": true }, @@ -592,20 +592,20 @@ "security": [ { "OAuth 2.0": [ - "{sourceId}:application:apply", - "{sourceId}:source:manage" + "{senderId}:application:apply", + "{senderId}:sender:manage" ] } ] } }, - "/{sourceId}/{destinationId}/{applicationId}/data": { + "/{senderId}/{destinationId}/{applicationId}/data": { "parameters": [ { "schema": { "type": "string" }, - "name": "sourceId", + "name": "senderId", "in": "path", "required": true }, @@ -735,20 +735,20 @@ "security": [ { "OAuth 2.0": [ - "{sourceId}:application:apply", - "{sourceId}:source:manage" + "{senderId}:application:apply", + "{senderId}:sender:manage" ] } ] } }, - "/{sourceId}/{applicationId}/status": { + "/{senderId}/{applicationId}/status": { "parameters": [ { "schema": { "type": "string" }, - "name": "sourceId", + "name": "senderId", "in": "path", "required": true }, @@ -835,20 +835,20 @@ "security": [ { "OAuth 2.0": [ - "{sourceId}:status:read", - "{sourceId}:source:manage" + "{senderId}:status:read", + "{senderId}:sender:manage" ] } ] } }, - "/{sourceId}/{destinationId}/{applicationId}/upload-status": { + "/{senderId}/{destinationId}/{applicationId}/upload-status": { "parameters": [ { "schema": { "type": "string" }, - "name": "sourceId", + "name": "senderId", "in": "path", "required": true }, @@ -987,8 +987,8 @@ "security": [ { "OAuth 2.0": [ - "{sourceId}:application:apply", - "{sourceId}:source:manage" + "{senderId}:application:apply", + "{senderId}:sender:manage" ] } ] @@ -1015,10 +1015,10 @@ "tokenUrl": "https://oauth.fiep-poc.de/invoke/pub.apigateway.oauth2/getAccessToken", "refreshUrl": "", "scopes": { - "{sourceId}:source:manage": "Dieser Zufriffsbereich erlaubt es alle Endpunkte einer ", - "{sourceId}:destination-info:read": "Dieser Zufriffsbereich erlaubt es Informationen von existierenden Destinationsabzurufen", - "{sourceId}:status:read": "Dieser Zufriffsbereich erlaubt es auf Statusmitteilungen zu einem übersendeten Antrag abzurufen.", - "{sourceId}:application:apply": "Dieser Zugriffsbereich erlaubt es Anträge anzulegen, diesen zu aktualisieren und abzusenden." + "{senderId}:sender:manage": "Dieser Zufriffsbereich erlaubt es alle Endpunkte einer ", + "{senderId}:destination-info:read": "Dieser Zufriffsbereich erlaubt es Informationen von existierenden Destinationsabzurufen", + "{senderId}:status:read": "Dieser Zufriffsbereich erlaubt es auf Statusmitteilungen zu einem übersendeten Antrag abzurufen.", + "{senderId}:application:apply": "Dieser Zugriffsbereich erlaubt es Anträge anzulegen, diesen zu aktualisieren und abzusenden." } } }, -- GitLab