我的自动化记账方案
由于手工记账容易遗忘,我选择使用招商银行 App 的“收支明细”功能来集中化自动记账。它能够整合微信、支付宝等支付渠道的账单,并通过商户类型和关键词建立账本。然而,它仅支持招商银行的卡片,无法记录国外信用卡消费。为了实现自动化,我解绑了其他银行卡,仅保留招商银行,并为家属开通亲属卡,以确保所有消费统一记录。…
GraphQL 的灵活性和其单一端点特性确实为日志记录带来了特定挑战。在 REST API 中,由于每个端点通常对应一个具体的资源或操作,这使得日志记录过程相对直观。然而,GraphQL 的设计允许单个请求包含多种不同的查询和突变,从而增加了日志记录的复杂性。 以传统 REST 接口为例,我们通常能够通过路由和方法来明确区分不同的请求。但在 GraphQL 中,由于其使用单一端点——通常是 /graphql,就无法直接通过路由区分请求的具体内容。 操作名称和签名 为了克服这一难题,我们可以采用基于客户端发送的操作名称来区分不同请求的策略。然而这种方法也存在一个问题:客户端可能会发送具有相同操作名称的不同请求,这导致了数据查询的混淆。 为了解决这个问题,一种有效的方法是将每个 GraphQL 查询字符串进行哈希处理,从而生成一个独特的操作签名。但普通哈希处理不能满足这个场景,例如: query GetPostDetails($postId: String!) { post(id: $postId) { author content } } query…