我即将设计我的Web服务API,我的API的大多数功能基本上与我的Web应用程序非常相似.
现在问题是,我应该创建1个单一方法并将它们重用于Web应用程序和Web服务API吗?(这似乎是合乎逻辑的解决方案,但它非常复杂;复制Web应用程序使用的方法要容易得多,并且保持两者分离,即Web应用程序的一种方法和Web服务的一种方法.)
你们是怎么做到的?
1)REUSE:一种主要方法,并将它们重用于Web应用程序和Web服务应用程序(我喜欢这个,但它很复杂)
即Commonfunctionmethod_x包含可重用的一组常用功能
PRO:更少的代码,更少的维护,更少的错误.
CON:非常复杂
2)DUPLICATE:两种方法,一种是Web应用程序的方法,另一种是Web服务的方法.
PRO:简单
CON:复制=更多代码,更多维护,更多错误!
我雇了一个客观的程序员来开发我的iphone应用程序,他编写代码,现在我想测试推送通知服务,但他不会发给我p12文件,他说他不能发给我p12键,因为它包含他的私钥.
1)所以我可以自己创建p12文件,如果是这样,我该怎么做?是不是需要附加到应用程序?我需要应用程序的ID?
2)我可以将他作为开发人员添加到我的苹果开发者帐户下,以便他可以设置所有内容吗?
将WSDL转换为REST Web服务,是否存在此库的C#版本? http://wsdl2rest.sourceforge.net/
我的主键使用 guid。
如何对 GUID 进行排序?
我创建一个日期时间列并记录一个日期时间戳怎么样,然后我可以按日期时间排序?这是最好的方法吗?或者有更好的方法吗?
此问题适用于任何数据库表设计,您将拥有相同类型的系统默认项和自定义用户默认值(即用户可以添加自己的自定义项/设置).
以下是发票和付款方式的示例,默认情况下,发票可以包含DueOnReceipt,NET10,NET15,NET30的付款条件(这是所有用户的默认值!)因此您将有两个表"INVOICE"和"PAYMENT_TERM"
INVOICE
Id
...
PaymentTermId
PAYMENT_TERM (System default)
Id
Name
Run Code Online (Sandbox Code Playgroud)
现在,允许用户存储自己的自定义"PaymentTerms"的最佳方法是什么?为什么?(即用户可以使用系统默认付款条款或用户自己创建/添加的自定义付款条件)
选项1)将UserId添加到PaymentTerm,为添加了自定义项并将系统默认用户标识设置为null的用户设置userid.
INVOICE
Id
...
PaymentTermId
PaymentTerm
Id
Name
UserId (System Default, UserId=null)
Run Code Online (Sandbox Code Playgroud)
选项2)向Invoice"IsPaymentTermCustom"添加一个标志并创建一个自定义表"PAYMENT_TERM_CUSTOM"
INVOICE
Id
...
PaymentTermId
PaymentTermCustomId
IsPaymentTermCustom (True for custom, otherwise false for system default)
PaymentTerm
Id
Name
PAYMENT_TERM_CUSTOM
Id
Name
UserId
Run Code Online (Sandbox Code Playgroud)
现在通过SQL查询检查用户是否使用自定义付款条件,如果IsPaymentTermCustom = True,则表示用户使用自定义付款条件,否则为false.
选项3)????
...
我在哪里可以获得货币列表以及国家/地区代码?
例
Code, Currency Name, Country, Format, Decimal Points, Currency Regime, Major Unit, Minor Unit, Equivalence,
USD, US Dollar, United States, $#,###.##, 2, float, dollar, cents, 100 cents = dollar
Run Code Online (Sandbox Code Playgroud)
REF:http://www.oanda.com/currency/currency-code? srccont = rightnav
<---这是完美的,但他们不提供下载的数据库?
我无法检索appsettings.json中设置的值,当我运行下面的代码时,我收到一个错误 System.NullReferenceException: 'Object reference not set to an instance of an object.'
我究竟做错了什么?
public static IConfigurationRoot Configuration { get; }
....
string facebookApiId = Configuration.GetValue<string>("Authentication:Facebook:AppId");
Run Code Online (Sandbox Code Playgroud)
appSettings.json
"Authentication": {
"Facebook": {
"IsEnabled": "false",
"AppId": "somevalue1",
"AppSecret": "somevalue2"
},
"Google": {
"IsEnabled": "false",
"ClientId": "somevalue3",
"ClientSecret": "somevalue4"
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
Run Code Online (Sandbox Code Playgroud) 您可以使用以下方法返回 http 状态代码以及响应对象:
return Ok(responseObject);
return BadRequest(responseObject);
return NotFound(responseObject);
Run Code Online (Sandbox Code Playgroud)
但是您想返回自己的自定义 http 状态代码怎么办?402、429、500、501 等
c# ×8
database ×3
.net-core ×2
asp.net ×2
asp.net-core ×2
web-services ×2
.net ×1
api ×1
csv ×1
doc ×1
ios ×1
iphone ×1
java ×1
objective-c ×1
pdf ×1
rest ×1
screenshot ×1
soap ×1
sql-server ×1
winforms ×1