Jump to content
  • Sign Up

StevenL.3761

Members
  • Posts

    117
  • Joined

  • Last visited

Everything posted by StevenL.3761

  1. Thanks for the update! I noticed that some items that were previously in the API now return Not Found. Is that related? If it can be any help, here's a snapshot that I took a while ago. https://github.com/StevenLiekens/gw2sdk/blob/de79bd6dadb7d9c478abb20f62645c8f279cb93a/GW2SDK.Tests/Data/items.json
  2. @"Daniel Snider.6241" is it possible that /v2/createsubtoken and /v2/tokeninfo run on different machines with different system clocks? Is it possible that those clocks are not synchronized? I often get "Invalid access token" from tokeninfo immediately after the subtoken is created. If there's no state then I'm guessing you use the "iat" claim to check if the token is valid... or some weird signing algorithm that's also time-sensitive.
  3. Friends, let's assume nobody is doing this on purpose. Whatever the reason is for all the outages, yelling at the problem isn't going to fix it. We can do better if we post timestamps and details of requests and responses so that the devs have all the information they need to diagnose the issues.
  4. It helps if you learn the basics of object-oriented programming. ;) Just enough to know what objects are, what methods are, and how to build a system made up of objects that call each other's methods.
  5. Thanks for the detailed response. I've been trying some things and I've seen tokeninfo return 403 Forbidden under a few circumstances: Token is expired (exp < now())"urls" is used but does not include "/v2/tokeninfo"Race condition?I'm not sure about the last one but if you do: let subtoken = GET /v2/createsubtokenlet tokeninfo = GET /v2/tokeninfo?access_token={subtoken}The second call sometimes fails. Adding a delay between the first and second call seems to help. I don't know how that's possible if the first call does not write state?
  6. Yep that sounds totally fine then. I'm implementing access to this endpoint now and I noticed that it's possible to create a token that has no permissions. It's also possible to create a token with an "exp" that is before its "iat". Example: GET /v2/createsubtoken?expire=2018-05-30T13:08:13 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJZZEVvTnRjQkJ1YnF5UmxoZWdPZC1iWGktMUxfd3NxQm1aV0x5YTlXd09ZIiwiaWF0IjoxNTU5MjIxNjkzLCJleHAiOjE1Mjc2ODU2OTMsInBlcm1pc3Npb25zIjpbXX0._Jsmtm8bUkqIWthjcIEG8eNAfM4Npp8x5Br5rsglMvINot even /v2/tokeninfo accepts this token. I'm not sure if the service should be handing out tokens that are practically useless?
  7. Hey, It's been about a week without any replies. Perhaps my intro was too long. :) I'm still working on this but it's a LOT of work for one person. If you know C# and are interested in helping (by contributing/reviewing/testing code) then let me know in the comments or in-game mail.I've also created a Slack so we can chat! Slack invite: https://join.slack.com/t/gw2sdk/shared_invite/enQtNjM5MTY0ODE2MDQ4LTU2M2JjNmNiNTk1NDk3NzE5ZDYwMjgxNThhNWVjNGU1YWZmMGZjMjdkMWJhYWVjODQ5NjY4MDcwNTFiMzk4NDk Cheers!
  8. Hey I'd be careful with allowing GET with createsubtoken because it has different semantics that (maybe some) clients use to decide whether to cache the response. In general a GET should be idempotent (asking a question should not change the answer).
  9. Who deployed on Friday after 5pm? /v2/build and /v2/colors are also down (Gateway Timeout).
  10. Hello, Most probably don't remember me but I used to co-author a C# library that provides an abstraction for the GW2 API. Unfortunately changes in my personal life stopped me from working on it about 5 years ago and the project became no longer maintained. If you check out the NuGet page you can see that the last update was in 2015. And that update was mostly just for bug-fixes... Rather than attempting to modernize an outdated library that's riddled with design issues (all my fault, of course) and outdated dependencies, I decided to take a fresh stab at it. I created a new Git repo and completely started over, using modern C# and .NET. This discussion exists for me to find out what people are doing these days: Are you currently using C#?Are you interested in using an API client library written in C#, for C#?Are you interested in collaborating on such a project?My design goals for the library: Provide an unopinionated API wrapper instead of an opinionated abstractionLet you retrieve data, add just enough type-checking to keep you warm and then get out of your wayFollow a test-driven approach to add features (documented here)Target .NET Standard 2.0 so you can use the library on a server, desktop, mobile or even an embedded deviceNon-goals (A.K.A. things I know you'll eventually need but I refuse to build them): Aggregating data, e.g. correlating recipes with items: you'll have to build this yourselfResilience with circuit breakers and automatic retries: there will be a tutorial on how to do this with PollyCustom timeouts: Polly can do this tooCaching: PollyOperational goals: Test code automatically Merge after it is code-reviewedPublish the library as a NuGet package in a continuous mannerKeep the lead time between API changes and package updates shortPowered by integration tests that compare real API data to static typesRun integration tests daily and notify collaborators whenever schema changes are detectedBuild trust between collaborators. Everyone gets to participate in both coding and reviewing code (accepting/rejecting pull requests). Respect people from all walks of life. Respect differences in knowledge levels. No code-shaming. Build trust with users by delivering high-quality, self-documenting code and delivering updates quicklyVision statement:I believe that software is not something you build once and then ship it off to users that you don't care about. Software is useless without users. Software needs to be operated like a machine. Code is vulnerable to wear and tear and can break in very similar ways if it isn't properly maintained. If you share this mindset, you understand that a project like this is a pretty big commitment that I can't take on alone. For this project to succeed, I'll need people who are interested in this stuff and who can support my vision with actions, for the benefit of the GW2 community. If this sounds like you, please let me know. Link: https://github.com/StevenLiekens/gw2sdk
×
×
  • Create New...