Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code #565

Merged
merged 6 commits into from
Jul 9, 2020
Merged

Code #565

merged 6 commits into from
Jul 9, 2020

Conversation

fsamwel
Copy link
Collaborator

@fsamwel fsamwel commented Jul 2, 2020

Op basis van actuele API specificaties gegenereerd:

  • client SDK's voor dotnet, java en python
  • resolved specificaties (genereervariant)
  • overzicht van testgevallen en testcoverage
  • postman collection

Inclusief de gebruikte scripts voor het genereren.

@fsamwel fsamwel requested review from JohanBoer and MelvLee July 2, 2020 11:44
Copy link
Collaborator

@JohanBoer JohanBoer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ik heb hier onvoldoende kennis van om goed te kunnen reviewen. Ik heb een paar opmerkingen geplaatst van wat mij opviel toen ik het doorkeek.


This C# SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:

- API version: 1.0.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moet dit niet versie 1.1.0 worden ? We brengen deze SDK's toch samen met de versie 1.1.0 van BRK-bevragingen uit ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dit heb je zelf al opgelost zie ik in pull request #566

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dat klopt, maar dan is het hier toch nog niet opgelost? Of wordt dit allemaal opnieuw gegenereerd op het moment dat we een release aanmaken ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ja, na elke wijziging van de specificaties kan (naar mijn idee: moet) iemand dit opnieuw genereren. Dan hebben we direct een consistente set van:

  • api specificaties
  • resolved specificaties
  • client SDK
  • overzicht testdata
  • Postman collection

Dat is precies waarom ik dit gemaakt heb, we hebben nog een heel oud Postman collection bestand staan, oude Excel sheet met wat ooit de testdata was, de genereerversie van de specificatie was maar gedeeltelijk bijgewerkt. Toch jammer wanneer het in die toestand een release was geworden.

**EinddatumRecht** | **DateTime?** | | [optional]
**IndicatieOorspronkelijkObject** | **bool?** | | [optional]
**BetreftGedeelteVanPerceel** | **bool?** | | [optional]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Het valt me hier op dat de Namen van de properties met een hoofdletter beginnen terwijl dit in de specifcatie camelCase is. Ik weet niet of dat er toe doet. Dit geldt voor alle componenten.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dat doet de code generator. @MelvLee is dat normaal voor schaap/dotnet?

Copy link
Collaborator

@rhengeveld rhengeveld Jul 2, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mijn vermoeden is dat dit gebruikelijke naamgeving is in C#

  • Hier: string, bool, float en andere basistypes
  • Hier: DateTime

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dat doet de code generator. @MelvLee is dat normaal voor schaap/dotnet?

Ja, in C# worden verschillende capitalization conventions gebruikt. In het kort pascal casing voor class en property namen en camel case voor parameter namen

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Dag** | **int?** | De dag. Als de dag van de datum bekend is wordt deze hier ingevuld. Ook als de volledige datum bekend is. | [optional]
**Datum** | **DateTime?** | De volledige datum die in de `date` definitie past. Dit element wordt alleen gevuld als de volledige datum bekend is. | [optional]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datum is in de specificatie "date"geen datetime. Dit komt overal voor waar een "date " is gespecificeerd in de OAS3. Ik neem aan dat dat te maken heeft met hoe je datums in csharp definieert.

Copy link
Collaborator

@rhengeveld rhengeveld Jul 2, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dat denk ik ook (C# DateTime definitie). Vergelijkbaar met de DateTime vanaf Java 8.

@@ -0,0 +1,8 @@
# IO.Swagger.Model.GeslachtEnum
## Properties

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hoeven de waarden van een enumeratie niet gedfinieerd te worden ?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dit is geen code file, maar een markdown file. En een enum kent geen properties. Daarom is de file leeg

@fsamwel
Copy link
Collaborator Author

fsamwel commented Jul 2, 2020

@MelvLee zou jij eens willen kijken naar de nu gegenereerde dotnet code. Is die goed, of moeten we hier een andere generator gebruiken?
openapi-generator heeft ook verschillende csharp generatoren:

  • csharp
  • csharp-dotnet2 (deprecated)
  • csharp-netcore

Comment on lines 126 to 127
- [BadRequestFoutbericht](docs/BadRequestFoutbericht.md)
- [BadRequestFoutberichtAllOf](docs/BadRequestFoutberichtAllOf.md)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dit ziet er vreemd uit - klopt dit met de AllOf erin? Misschien dat deze generator toch ander gedrag heeft.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ik kwam dit trouwens in je eerste Java update commit tegen. GitHub zegt dat dit nu 'outdated' is, maar ik kan niet goed zien met zoveel wijzigingen of dit nog steeds van toepassing is of niet.

<groupId>io.swagger</groupId>
<artifactId>swagger-java-client</artifactId>
<groupId>org.openapitools</groupId>
<artifactId>openapi-java-client</artifactId>
<version>1.0.0</version>
Copy link
Collaborator

@rhengeveld rhengeveld Jul 2, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hoort dit niet <version>4.3.0</version> te zijn?
Volgens mij is dit de release pagina, anders haal ik dingen door elkaar (naamgeving van die tools is ambigu) 🤔

sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@MelvLee
Copy link
Collaborator

MelvLee commented Jul 3, 2020

@MelvLee zou jij eens willen kijken naar de nu gegenereerde dotnet code. Is die goed, of moeten we hier een andere generator gebruiken?
openapi-generator heeft ook verschillende csharp generatoren:

* csharp

* csharp-dotnet2 (deprecated)

* csharp-netcore

Ik kan het moeilijk beoordelen vanuit de PR. Het zijn teveel bestanden. Ik heb daarom de code zelf gegenereerd met de tool. De gegenereerde code kan ik compileren. Ik heb alleen een maar. Met de default settings genereert de generator een complete solution, inclusief een test project. Er is dus meer code gegenereerd dan alleen code om de api te bevragen. Het is daardoor minder bruikbaar voor een bestaand project. Ik zal nog even kijken of het mogelijk is om alleen de benodigde code te genereren

@MelvLee
Copy link
Collaborator

MelvLee commented Jul 7, 2020

Het is mogelijk via settings alleen de benodigde client code te genereren.
Voor .NET Core ziet het er als volgt uit: npx @openapitools/openapi-generator-cli generate -i openapi.yaml -g csharp-netcore --global-property=modelTests=false,apiTests=false,modelDocs=false,apiDocs=false --additional-properties=optionalProjectFile=false,optionalAssemblyInfo=false.
Voor .NET Full Framework ziet het er als volgt uit: npx @openapitools/openapi-generator-cli generate -i openapi.yaml -g csharp --global-property=modelTests=false,apiTests=false,modelDocs=false,apiDocs=false --additional-properties=optionalProjectFile=false,optionalAssemblyInfo=false.

csharp-dotnet2 is deprecated. Daarvoor zou ik geen code genereren.

De output map waar de code terecht moet komen is niet toegevoegd in bovenstaande settings

@fsamwel fsamwel merged commit 93d311a into VNG-Realisatie:master Jul 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants